8
私は、Marionette.Layout
の使用を意図していると根本的に誤解していると思います。Backbone.jsのMarionetteでのレイアウトの理解
私はこのような何かをしようとしている:
レイアウトは2つのMarinotette.ItemView
Sが含まれています。 "爆発" ItemView
と "ポップスター" ItemView
。このレイアウトは、常にこれらのビューを含むように設計されたので、私はこれを行うために試みられている。
var TheLayout = Backbone.Marionette.Layout.extend({
template: '#the=layout-template',
regions: {
explode: '#explode-region',
popstar: '#popstar-region'
}
initialize:function(options){
_.bindAll(this);
var explodeView = new ExplodeView();
this.explode.show(explodeView); // <-- This throws and exception because the regions are not available yet
}
})
しかし領域はレイアウトがレンダリングされるまでは利用できないように見えます。ビューを追加する前にthis.render()
と呼んでみましたが、これは機能しませんでした。ここでの根本的な問題は、間違った状況でレイアウトを適用していることです。
この場合、どうすればよいですか? Marionette.Layout
を使用する正しい時期はいつですか?
ありがとうございます!
'_.bindAll(this)'に関して、私はまだそれをどのような場合に使用するのか、どのような場合にしないのか混乱しています。 – CodeRain
イベントハンドラやonRender、onCloseなど、Marionetteから直接呼び出されるほとんどのメソッドでは、コンテキストはMarionetteによって正しく設定されており、 'bindAll'は必要ありません。他の誰かがあなたのメソッドを呼び出している場合は、AJAXからのjQueryコールバックやjqueryを使って直接バインドされたイベントなど、コンテキスト 'this'をビューにしたい場合は' _.bindAll(this、 'myfunc') '友人。 –
保存日: – SAR