2016-10-04 4 views
2

У меня есть функция javascript, которая используется для создания динамического элемента с использованием функции setAttribute. Теперь я хочу добавить атрибуты [(ngModel)] в этот элемент для двусторонней привязки данных. Я попытался добавить это с помощьюДобавить динамические атрибуты в Angular2

obj.setAttribute ("[(ngModel)]", "ModelName")

Но я получаю error-

Failed to execute 'setAttribute' on 'Element': '[(ngModel)]' is not a valid 

ответ

1

Вместо атрибут установки из JavaScript, поместите все свойства внутри массива и зациклируйте его, чтобы отобразить все поля ввода.

<div ngFor="item in items"> 

    <input [(ngModel)]="item.modelName" class="form-control" /> 

</div> 
+0

привет, Thnx для ответа, на самом деле я использую metawidget JavaScript API для создания элемента из JSON-схемы. Поэтому я прошел через api, где они используют settAtributes для добавления атрибутов. – deen

+2

Добавление любого синтаксиса привязки Angular2 к DOM бессмысленно. Angular2 преобразует эти привязки в JS до добавления компонентов в DOM. В DOM bindngs не будет никакого эффекта вообще. –

+0

Так что это хороший выбор для предопределения шаблона и его использования, istead динамически добавлять или добавлять к нему атрибут? @ Günter Zöchbauer – peaceUser

1

Как утверждает Гюнтер, «в привязках DOM вообще не будет никакого эффекта». Однако это верно и для Углового 1. В Angular 1 вам всегда приходилось $compile ваш фрагмент DOM, прежде чем он будет иметь какой-либо эффект.

Угловой 2 эквивалент $compile немного отличается, но это может помочь вам исследовать эти линии. Например:

Смежные вопросы