角度2中的justGage无法识别Div ID

时间:2016-07-09 05:44:05

标签: angular justgage

我正在使用角度为2的JustGage为仪表创建一个组件。

以下是我的组件,

@Component({
    selector: 'my-gauge',
    template: '<div id={{gaugeId}} style="width:200px; height:150px;" ></div>'
})
export class GaugeComponet implements OnInit {

    @Input()
    gaugeId: String;

    ngOnInit() {
        console.log("inside on init with id : " + this.gaugeId);
        var g = new JustGage({
            id: this.gaugeId,
            value: 45,
            min: 0,
            max: 100,
            title: "Title"
        });
    }
}

及其在app组件中的用法,

@Component({
    selector: 'my-app',
    template: '<h1>Gauge Demo</h1> <my-gauge gaugeId="testId"></my-gauge>',
    directives :[GaugeComponet]
})
export class AppComponent { }

当我运行此代码时,我在浏览器控制台中获得以下输出,

inside on init with id : testId GaugeComponent.js (line 16)
* justgage: No element with id : testId found

当我在仪表组件中对id进行硬编码时,我能够在页面上看到仪表。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

您不会将testId作为字符串传递。

试试这个:

<my-gauge gaugeId="'testId'"></my-gauge>

或者您需要在testId中添加AppComponent变量:

@Component({
    selector: 'my-app',
    template: '<h1>Gauge Demo</h1> <my-gauge gaugeId="testId"></my-gauge>',
    directives :[GaugeComponet]
})
export class AppComponent {
  testId = 'testId';
}

<强>更新

你还需要使用ngAfterViewInit hook而不是ngOnInit来初始化JustGage