これを実現する方法がわからず、ルーター「view.executeSomeUIaction()」から呼び出すのは良い考えではないと感じています。助けに感謝します。
3 に答える
el
ビューがDOMに追加されたときに、ビューでコードを実行したいですか?
私はそれをBackbone.MarionetteフレームワークにRegion
オブジェクトとともに組み込み、それについてブログ投稿をここに書きました:http: //lostechies.com/derickbailey/2011/12/12/composite-js-apps-regions -and-region-managers /
この投稿では、onShow
メソッドをチェックして、存在する場合はそれを呼び出すことに注意してください。これはあなたが注意を払いたいビットです。このメソッドをビューに追加し、リージョンオブジェクトを使用してビューを表示すると、このメソッドが呼び出され、その時点で必要なことを何でも実行できます。
私のマリオネットフレームワークにはRegionオブジェクトが組み込まれています。または、ブログ投稿からコピーすることもできます:https ://github.com/derickbailey/backbone.marionette
ビューがページにロードされたときに何かをするだけなら、これを行うことができます。
var contactsView = Backbone.View.extend({
id: "contactView",
tagName: "div",
className: "contacts-container",
render:function(){
//render your view
//now attach the events that don't bubble
$(this.el).on("load",this.added);
},
events: {},
added: function () {
alert("View had been added");
}
});
遊ぶJsFiddle
修正済み
muによって提案されたアプローチは短すぎますsetTimeout
。タイムアウトが0のaを使用することです。これは、ほとんどの状況でうまく機能します。