我正在使用角度为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进行硬编码时,我能够在页面上看到仪表。
我做错了什么?
答案 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