0

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

アプリコンポーネントでの使用、

@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 をハードコーディングすると、自分のページにゲージが表示されます。

私は何を間違っていますか?

4

1 に答える 1

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';
}

アップデート

また、 JustGage を初期化するngAfterViewInit代わりにフックを使用する必要がありますngOnInit

于 2016-07-09T05:47:14.760 に答える