在Angular2中添加动态属性
问题描述:
我有用于使用setAttribute函数创建动态元素的现有javascript函数。现在我想追加属性[(ngModel)]到这个元素进行双向数据绑定。我尝试添加该使用在Angular2中添加动态属性
obj.setAttribute( “[(ngModel)”, “MODELNAME”)
但是我却越来越无差错
Failed to execute 'setAttribute' on 'Element': '[(ngModel)]' is not a valid
答
代替从JavaScript设置属性,将所有属性放在数组中并循环它以呈现所有输入字段。
<div ngFor="item in items">
<input [(ngModel)]="item.modelName" class="form-control" />
</div>
答
正如Günter所述,“在DOM绑定中根本没有任何影响”。然而,Angular 1也是如此。在Angular 1中,您必须先使用$compile
您的DOM片段,才能产生任何效果。
Angular 2的等效$compile
有点不同,但它可以帮助您沿着这些线进行研究。例如:
喜,日Thnx的反应,其实我使用metawidget的JavaScript API来从JSON模式元素。所以我通过API使用了settAtributes来追加属性。 – deen
向DOM添加任何Angular2特定绑定语法都是毫无意义的。在将组件添加到DOM之前,Angular2将这些绑定转换为JS。在DOM绑定中根本没有任何效果。 –
那么预定义一个模板和使用它是否是一个好的选择,是动态追加还是添加一个属性? @GünterZöchbauer – peaceUser