最佳答案
我有点困惑。
看看这个简单的指令:
@Directive({
selector: '[myDirective]'
})
export class MyDirective {
private text: string;
private enabled: boolean;
@Input() myDirective:string;
@Input('myText')
set myText(val: string) {
this.text = val;
}
@Input('myEnabled')
set myEnabled(val: boolean) {
this.enabled = val;
}
ngOnInit() {
console.log("myDirective string: " + this.myDirective);
console.log("myText string: " + this.text);
console.log("myEnabled boolean: " + this.enabled);
}
}
如果我的 html 看起来像这样:
<div [myDirective]="myDefaultText" [myEnabled]="true" [myText]="abc"></div>
产出将是:
myDirective string: myDefaultText real value // good
myEnabled boolean: true // good
myText string: undefined // Why?
如果我从 myText
中移除[] :
<div [myDirective]="myDefaultText" [myEnabled]="true" myText="abc"></div>
产出将是:
myDirective string: myDefaultText real value // good
myEnabled boolean: true // good
myText string: abc // GOOD
我也可以删除的 []
从 myEnabled
和它也将工作。
所以这里是我的困惑-当我需要使用方括号 []
和当不,而我希望用户谁将使用 myDirective
将永远不需要想知道是否或如果不,我认为方括号 []
应该始终存在。不是吗?