0

レンダリングされたメソッドは、_initializeLayoutの前に呼び出されています。

var _initializeLayout = function() {

    console.log('initializeLayout...');

    Controller.layout = new Layout();

        Controller.layout.on("show", function() {

        vent.trigger("layout:rendered");

    });

    vent.trigger('app:show', Controller.layout);

};

onrenderedメソッドのレイアウトを使用します。

// controller attach a sub view/ search View
vent.on("layout:rendered", function() {
    console.log('layout:rendered =>StartController');

    // render views for the existing HTML in the template, and attach it to the layout (i.e. don't double render)
    var inspectorStartView = new InspectorStartView();
    Controller.layout.inspector.attachView(inspectorStartView);

    var playerStartView = new PlayerStartView();
    Controller.layout.player.attachView(playerStartView);
});

試してみると、レンダリングされたコールバックが_initializeLayout()の前に呼び出されます。router/controllerメソッドで_initializeLayoutを呼び出しています。

Controller.go_inspector_control_center = function(term) {
        _initializeLayout();
        //vent.trigger("search:term", term);
    };

もう一度実行したところ、別のコントローラーの_initializeLayout()メソッドからイベントがトリガーされていることがわかりました。

   // private
var _initializeLayout = function() {
    console.log('initialize Start Layout...');
    Controller.layout = new Layout();
    Controller.layout.on("show", function() {
        **vent.trigger("layout:rendered"); // <--**
    });
    vent.trigger('app:show', Controller.layout);
};

イベントには一意の名前を付ける必要があるようです。やってみます。誰か知っているならチャイムを入れてください。

アンドリュー

4

1 に答える 1

0

Javaの人たちをどこにでも連れて行くことはできません。(Javascriptでの)答えは、イベントに一意の名前を付ける必要があるということです。あなたがそれについて考えるとき、理にかなっています。

私がX11/Javaで使用したほとんどのイベントシステムでは、イベントに名前を付けず、提供されているものを使用します。

これは、イベントの命名に関するスタックオーバーフローの質問です。

私の公的な学習が他の人を助けてくれることを願っています。;-)

于 2013-02-01T20:00:08.523 に答える