无法设置指令输入值

时间:2017-01-22 17:55:57

标签: angular directive

我已经缩小了我对这个指令代码的问题:

@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

1 个答案:

答案 0 :(得分:2)

似乎你想传递一个字符串

<h2 [tdStepTracker]="something">Hello {{name}}</h2>

应改为

之一
<h2 [tdStepTracker]="'something'">Hello {{name}}</h2>
<h2 tdStepTracker="something">Hello {{name}}</h2>

您的代码绑定到不存在的类something的属性App

Plunker example