私は働いてMarionette
いますが、次の問題があります。
2 つの異なる領域を持つレイアウトを作成しました。レイアウトでは、レイアウトの2initialize
つの領域に 2 つのビューが読み込まれます。ViewA
と言うViewB
。イベント内ViewA
でトリガーされます。イベントはレイアウトによって消費されて切り替わり、他の 2 つのビューが挿入されます。ViewC
と言うViewD
。切り替えが実行されるたびに、私が適用したのと同じスタイル (CSS も) がViewC
ありViewD
ません。特に、jQuery Mobile スタイルは適用されません。何かアドバイス?
コメントが重要な部分を強調するコードを次に示します。
onConfirm : function() {
this.leftView = new ViewC();
this.rightView = new ViewD();
this.leftRegion.show(this.leftView);
this.rightRegion.show(this.rightView);
// FIX calling trigger('create') seems fix the problem. Why? Is this correct?
this.$el.trigger('create');
},
initialize : function() {
// listen for event triggered from ViewA
// e.g. GloabalAggregator.vent.trigger("ga:confirm");
// where "ga:confirm" is a simple string
GloabalAggregator.vent.on("ga:confirm" , this.onConfirm, this);
this.leftView = new ViewA(), // creating here a new ViewC the style is applied correctly
this.rightView = new ViewB(); // creating here a new ViewD the style is applied correctly
},
onRender : function () {
this.leftRegion.show(this.leftView);
this.rightRegion.show(this.rightView);
}
編集
電話をかけるtrigger('create')
と問題が解決するようです。なんで?これは正しいです?