首页 文章

't bind to ' for ' since it isn' t是已知的原生属性angular2

提问于
浏览
17

我必须动态创建一个复选框列表,所以我使用* ngFor来迭代对象数组,一切正常,直到迭代 . 当我在label标签中设置 for 属性的值时,会出现问题 . angular已抛出错误:

无法绑定到'for',因为它不是已知的本机属性angular2

新的错误消息

未处理的Promise拒绝:模板解析错误:无法绑定到'for',因为它不是'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

我的代码中有什么问题?

1 回答

  • 23

    update

    在Angular2中, [for]="xxx" 应该可以正常工作 . 他们从 for 添加了一个别名到 htmlFor .

    original

    Angular默认使用属性绑定,但 label 没有属性 for . 要明确告诉Angular使用属性绑定,请改用:

    [attr.for]="someField"
    

    要么

    attr.for="{{someField}}"
    

    代替 .

    这些也有效,因为 htmlFor 是属性 for 被反映到 .

    [htmlFor]="someField"
    htmlFor="{{someField}}"
    

    在Angular2 RC.6中添加了一个别名,所以现在这些别名也可以正常工作:

    [for]="someField"
    

    要么

    for="{{someField}}"
    

相关问题