0

これを実現する方法がわからず、ルーター「view.executeSomeUIaction()」から呼び出すのは良い考えではないと感じています。助けに感謝します。

4

3 に答える 3

0

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

于 2012-05-04T02:43:57.047 に答える
0

ビューがページにロードされたときに何かをするだけなら、これを行うことができます。

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

http://jsfiddle.net/qy2Ly/

修正済み

http://jsfiddle.net/zRSg3/3/

于 2012-05-04T04:01:36.947 に答える
0

muによって提案されたアプローチは短すぎますsetTimeout。タイムアウトが0のaを使用することです。これは、ほとんどの状況でうまく機能します。

于 2013-01-22T05:18:10.473 に答える