角度コンポーネントについて学習しようとしていますが、ネストされたコンポーネント構成で動作させるのに問題があります。基本的に私がしたいのは、定期的に値を更新する親コンポーネントを持つことです。次に、内部の子コンポーネントを親の値にバインドし、値が変更されたときに$ onChangesを呼び出すようにします。問題を理解する角度コンポーネント
jsFiddle私は達成しようとしていることを実証しました。親コンポーネントが動作していて、更新された値を表示しているようですが、何らかの理由で子コンポーネントがまったくレンダリングされません。
let app = angular.module('app', []);
class ParentController {
constructor($interval) {
this.value = 0;
$interval(() => this.value++, 1000);
}
}
let ParentComponent = {
controller: ParentController,
template: `<div>parent value: {{$ctrl.value}}</div>`
};
app.component('parent', ParentComponent);
class ChildController {
$onChanges(changesObj) {
console.log(changesObj);
}
}
let ChildComponent = {
bindings: {
value: '='
},
controller: ChildController,
require: {
parent: '^^parent'
},
template: `<div>child value: {{$ctrl.value}}</div>`
};
app.component('child', ChildComponent);
そしてHTML::
<div ng-app="app">
<parent>
<child value="$ctrl.parent.value"></child>
</parent>
</div>
私が何か間違ったことか、私は不可能を達成しようとしている何であるだろうか?ここで私はこれを達成するために使用していたコードですか
ありがとうございました。私は、transcludeオプションについて知らなかった。親の値が変更されたときにChildComponentに$ onChangesをトリガーさせる方法があるかどうかは分かりますか? – snusnu
私はそれが可能だとは思わない、いいえ。 親コンポーネントのテンプレート内で子コンポーネントが宣言されていない限り、そうではありませんが、私はそれが下りたい道路だとは感じません。 –
私の最後のコメントを無視して、それは確かに可能です。最新の編集を確認してください! –