2016-07-26 7 views
2

私は最終的にAngular2に移動することを予期してAngularJSコンポーネントを使用しています。私は基本的にはいくつかの特定の入力と出力を持つドロップダウンであるコンポーネント(Component1)を持っています。私はドロップダウンの全く同じ種類ですが、Component1のngモデルに依存している別のコンポーネント(Component2)があります。 Component2で継承を使用して、重複したコードがないようにする方法はありますか?AngularJSコンポーネントでの継承の使用

私はAngular2で継承を使用する方法を知ることができるので、これが最善のアプローチと思われます。しかし、Angular 1.5でこれを行う方法を示すものは何も見つかりません。

コンポーネント1にもテンプレートが必要ですが、コンポーネント1とコンポーネント2の両方で同じになります。また、Component2は、Component1からの値の追加入力と、その追加入力が変更されたときの$ onChangesイベントのいくつかのコードを必要とします。

ありがとうございます!

答えて

1

あなたができる最善のことは、変更がコンポーネント1にoccuresとき、バインディングなどの部品2にHTML

<component2 model-object="$ctrl.modalObject"></component2> 

内部

app..component('component2', { 
    bindings: { 
    modelObject: '<' 
    }, 
    controller: function() { 
    //do stuff 
    } 
}); 

をモデルオブジェクトを渡すことです。あなたのコンポーネントがその変更に依存している場合 あなたはonchangesライフサイクルフックcomponents.insideコンポーネント2コントローラを使用する必要があります。

this.$onChanges=function(data){ 
    //this data has all changed values.. 
    // you can also use isFirstChange() to determine if it was the first or not. 
    if(data.hasOwnProperty('modalObject'){ 
    if(!data.modalObject.isFirstChange()){//means its not the initialization} 
} 
} 
関連する問題