2016-08-31 3 views
-1

私は、aureliaで動的な構成を実装しようとしています。より正確には私はタブを作成しています。新しいタブごとに新しいdivを追加しています。その中にはcompositionEngine.compose(...)を使用して、そのタブに対応するコンポーネントを追加しています。実際の例はhttps://gist.run/?id=08a04dad8d94af01989d789a216195f3です。しかし、私はいくつかの奇妙な行動を経験しています。たとえば、2つのタブで同じコンポーネントを2回開くと、viewModelを再利用(共有)しているようです。モジュール2を一度開き、変更をクリックしてカウンタをインクリメントし、再度開きます。以前の値が表示されます。何か案は?Aurelia dynamic composition

答えて

0

あなたはtransientデコレータ

import {transient} from 'aurelia-framework' 
@transient() 
export class M2 { 
    cnt = 1; 

    click(event){ 
    this.cnt = this.cnt + 1; 
    } 
} 
0

であなたのビューモデルをマーク可能性がありますが、私は私の問題の原因を理解する平均時間では、正しいです、あなたにジェームスをありがとうございます。 compositionEngineはcontainer.get(...)を呼び出します。もちろん、デフォルトで各クラスのシングルトンが返されます。あなたが言ったように@transient()を追加すると、コンテナは新しいインスタンスを返します。私がまだ理解できないことは、aureliaが他のケースのモデルインスタンスを作成する方法(どこ)​​かということです。私は、コンテナが、子コンテナ(container.createChild()の後に作成)でregisterInstanceを使用してモデルを登録する必要があるツリーであると仮定します。