我必须动态地创建一个复选框列表,所以我使用* ngFor来迭代对象的数组,一切都正常工作,直到迭代。当我在label标签中设置for属性的值时,会出现问题。角已经抛出错误:
Can’t bind to ‘for’ since it isn’t a known native property angular2
新的错误消息
Unhandled Promise rejection: Template parse errors: Can’t bind to ‘for’ since it isn’t a known property of ‘label’.
<div *ngFor="#batch of batch_array"> <label for="{{batch.id}}"><input type="checkBox" [value]="batch.id" id="{{batch.id}}" (click)="batchSelectedEevent(batch.id)" /> {{batch.batch_name}} </label> </div>
这是我的plnkr显示错误:http://plnkr.co/edit/aAQfWvHc7h7IBuYzpItO?p=preview
更新
在Angular2最终[for] =“xxx”应该正常工作。他们从一个别名添加到htmlFor。
原版的
Angular默认使用属性绑定,但label没有属性。要明确指出Angular使用属性绑定,请改用:
[attr.for]="someField"
要么
attr.for="{{someField}}"
代替。
这些也是工作,因为htmlFor是属性被反映到。
[htmlFor]="someField" htmlFor="{{someField}}"
在Angular2 RC.6中,添加了一个别名,以便现在也可以工作:
[for]="someField"
要么
for="{{someField}}"