Я работаю над проектом angular 2 и имею общий шаблон формы, который я хочу использовать примерно для 5 форм, потому что все они будут использовать один и тот же html. Я решил сделать это таким образом, чтобы предотвратить создание нескольких шаблонов с повторяющейся структурой html.
Поля, включая тип виджета, являются частью моей модели данных, поступающей с сервера. Внутри моего компонента общей формы эти типы виджетов используются для возврата html для виджета. Внутри моего шаблона директива innerHTML берет возвращенный html и отображает его в представлении. Шаблон ничего не знает об элементах управления формы. Он просто принимает данные формы с сервера и отображает результаты. Этот шаблон используется не только для обычных форм, но и для фильтров, потому что фильтры - это просто еще одна форма. Существует также компонент общих фильтров, расширяющий компонент формы.
Поэтому для моих фильтров я хотел бы иметь возможность привязать эти поля к моим данным, чтобы фильтровать список элементов. Проблема в том, что, поскольку html виджета отображается внутри компонента и добавляется в dom с использованием innerHTML в представлении, нет возможности использовать ngModel на входах. Возможно, одним из способов сделать это может быть использование ngSwitch внутри шаблона для рендеринга правильного виджета на основе типа виджета, но я не был точно уверен.