【问题标题】:Div id not recognised for justGage in angular 2角度 2 中的 justGage 无法识别 Div id
【发布时间】:2016-07-09 05:44:05
【问题描述】:

我正在使用 JustGage 在角度 2 中创建仪表组件。

以下是我的组件,

@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"
        });
    }
}

及其在应用组件中的使用,

@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 进行硬编码时,我可以在我的页面上看到仪表。

我做错了什么?

【问题讨论】:

    标签: angular justgage


    【解决方案1】:

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

    试试这个:

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

    或者您需要在您的AppComponent 中包含testId 变量:

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

    更新

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

    【讨论】:

    • 我尝试将变量中的 id 作为 [gaugeId]="variableName" 传递,但它仍然无法正常工作,对于第一种方法,我在 init 中得到了这个 id :'testId' GaugeComponent。 Node.js(第 16 行)* justgage:没有 id 的元素:'testId' found'。如果您看到控制台的输出,我也会在我的组件中获取 id 我正在获取 Id。
    • 你也可以给我一些链接,我可以更好地学习生命周期方法吗??
    猜你喜欢
    • 2019-03-29
    • 1970-01-01
    • 2017-06-09
    • 1970-01-01
    • 2018-03-29
    • 2021-04-19
    • 2019-10-23
    • 2021-10-13
    • 2021-12-07
    相关资源
    最近更新 更多