Angular 2:不接收输入值的属性指令

时间:2016-10-26 07:21:58

标签: angular angular2-directives

我制作了一个heatMap属性指令,它在调用时传递时没有接收到值。

HeatMap指令:

import {Directive, ElementRef, Input, Renderer, OnInit} from "@angular/core";

@Directive({
    selector: '[HeatMap]',
})

export class HeatMapDirective{

    @Input('startVal') public startVal: string;

    constructor(private el: ElementRef, private renderer: Renderer) {
        this.processHeatMap();
    }

    processHeatMap() {
     console.log(this.startVal); // prints undefined.
    }
}

HTML元素:

    <td class="pad-10" [startVal]="'25'" HeatMap> 25 </td>

我有一个场景,我需要传递字符串和数值,但两者都无法正常工作。我错过了什么吗?

2 个答案:

答案 0 :(得分:0)

将您的html更改为:

<td class="pad-10" [startVal]="'25'" HeatMap> 25 </td>

答案 1 :(得分:0)

从构造函数寻址时输入值尚未初始化,像这样从 ngOnInit() 寻址它们:

ngOnInit() {
  this.processHeatMap();
}