我已经缩小了我在这个指令代码中遇到的问题:
@Directive({
selector: '[tdStepTracker]'
})
export class StepTrackerDirective {
@Input('tdStepTracker') keyName: string;
ngOnInit() {
console.log('keyName', this.keyName);
}
}
并在这里使用:
@Component({
selector: 'my-app',
template: `
<div>
<h2 [tdStepTracker]="something">Hello {{name}}</h2>
</div>
`,
})
export class App {
name:string;
constructor() {
this.name = 'Angular2'
}
}
当我记录this.keyName
的内容时,我得到undefined
.我本以为会得到something
。
这是 plunker 的链接:https://plnkr.co/edit/Cbw6CHbsppiuVpW4kpTh
似乎你想传递一个字符串
<h2 [tdStepTracker]="something">Hello {{name}}</h2>
应更改为以下之一
<h2 [tdStepTracker]="'something'">Hello {{name}}</h2>
<h2 tdStepTracker="something">Hello {{name}}</h2>
代码绑定到不存在的类 App
的属性something
。
普伦克示例