Nik*_*tin 15 typescript angular
我使用Angular 2.0框架并尝试创建一个输入组件.我也使用谷歌MDL,它的HTML结构需要输入标签.Angular给了我一个例外:
EXCEPTION: Template parse errors:
Can't bind to 'for' since it isn't a known native property ("s="mdl-textfield__input" type="text" id="{{input_id}}">
<label class="mdl-textfield__label" [ERROR ->]for="{{input_id}}">{{input_label}}</label>
</div>"): InputUsernameComponent@2:44
Run Code Online (Sandbox Code Playgroud)
这是代码:
import {Component} from 'angular2/core';
import {Input} from 'angular2/core';
@Component({
selector: 'input-username',
template: `<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<input class="mdl-textfield__input" type="text" id="{{input_id}}">
<label class="mdl-textfield__label" for="{{input_id}}">{{input_label}}</label>
</div>`
})
export class InputUsernameComponent {
@Input('input-id') input_id: string;
@Input('input-label') input_label: string;
}
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?
Gün*_*uer 41
更新
在最近的Angular2版本中for应该htmlFor自动映射以避免这种问题.
原版的
您需要属性绑定而不是正确的绑定
<label class="mdl-textfield__label" attr.for="{{input_id}}">{{input_label}}</label>
Run Code Online (Sandbox Code Playgroud)
要么
<label class="mdl-textfield__label" [attr.for]="input_id">{{input_label}}</label>
Run Code Online (Sandbox Code Playgroud)
要么
<label class="mdl-textfield__label" htmlFor="{{input_id}}">{{input_label}}</label>
Run Code Online (Sandbox Code Playgroud)
htmlFor是反映for属性的属性(https://developer.mozilla.org/de/docs/Web/API/HTMLLabelElement)
另请参见HTML - 属性与属性
| 归档时间: |
|
| 查看次数: |
9177 次 |
| 最近记录: |