Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Backbone.js 每个版面需要不同的活动吗?_Backbone.js_Marionette - Fatal编程技术网

Backbone.js 每个版面需要不同的活动吗?

Backbone.js 每个版面需要不同的活动吗?,backbone.js,marionette,Backbone.js,Marionette,在_initializeLayout之前调用我的呈现方法: var _initializeLayout = function() { console.log('initializeLayout...'); Controller.layout = new Layout(); Controller.layout.on("show", function() { vent.trigger("layout:rendered"); });

在_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);

};
我使用“在渲染时”方法中的布局:

// 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()之前调用我的on呈现回调。我让它在路由器/控制器方法中调用_initializeLayout:

Controller.go_inspector_control_center = function(term) {
        _initializeLayout();
        //vent.trigger("search:term", term);
    };
我只是再次运行它,发现另一个控制器的_initializeLayout()方法触发了一个事件:

//私有
var_initializeLayout=函数(){
log('initializestart Layout…');
Controller.layout=新布局();
Controller.layout.on(“show”,function()){

**vent.trigger(“layout:rendered”);//你不能把我们这些Java家伙带到任何地方。答案(在Javascript中)是我确实需要唯一地命名我的事件。考虑到这一点,这很有意义

尽管我使用过的大多数事件系统都是X11/Java,但您并没有命名您的事件,而是使用它们提供的名称

这是一个


我希望我的公开学习能帮助其他人。;-

这个例子来自木偶先生本人:MyApp.vent.on(“some:namespaced:event”,function(){//do stuff});这个例子看起来像是你创建了自己的名称空间,但右端的事件是一个事件名称。“名称空间”==some.namespaced,您可以想出您想要的MyApp.vent.trigger(“some:namespaced:event”);
   // 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);
};