一つの方法は、すなわち$onChanges
と$onInit
角度の新しいコンポーネントのメソッドにフックすることです:
が初期化取得された場合$ ctrl.productsちょうど行の後に以下の行を使用してください。
products.list.component.js
が、新しい$ctrl.results
データセットをレンダリングするproductsオブジェクトのAPI呼び出しを実行しているとします。
product-result.js
コンポーネントは、$ctrl.results
の一方向バインディングを新しい$onChanges
メソッドでチェックすることができます。片方向のバインディングが更新されるたびに$onChanges
が呼び出されます。このメソッドは、オブジェクトパラメータを変更します。変更オブジェクトには、変更されたバインドされたプロパティの名前であるキーがあります。 product-result.js
ため
あなたのコードは
/**
* @ngdoc function
* @name $onInit
* @description on bootstrap for the component check if the value `ctrl.results ` is falsy
*/
$onInit: function $onInit() {
if (!this.results) {
this.showNoDataAvaliable = true;
}
},
/**
* @ngdoc function
* @name $onChanges
* @description when component product-list passes a new value for $ctrl.results, Show the data.
* @param {Object} changes the changes object when any binding property is updated, this is similar to
* having a watch function on $scope.variable
*/
$onChanges: function $onChanges (changes) {
if (changes.data && changes.data.currentValue) {
this.showNoDataAvaliable = false;
//... more code on how to display the data.
}
}
トッドのモットーは、角1.5コンポーネントについての素晴らしいブログ記事を持っていることができ、私はあなたがはるかに簡単な解決策はただng-使用することです https://toddmotto.com/angular-1-5-lifecycle-hooks
ヒント:画面が表示されません。 –
変数名の前に$記号を削除してみてください – Prasheel