木偶表演活动不会被触发

时间:2014-03-13 05:57:52

标签: backbone.js marionette

我希望在显示任何区域后执行show code。我试过了:

app.Layout = Backbone.Marionette.Layout.extend({
        template: "#layout-template",
        regions: {
            mini1: {
                selector: "#mini1",
                onShow: function () {
                    console.log("triggered!");
                }
            }});
app.layout.mini1.show(new view());

但是onShow函数没有运行。这有什么问题?

1 个答案:

答案 0 :(得分:2)

在区域列表中有三种定义区域的方式:

  1. 带选择器的字符串
  2. 具有selectorregionType属性的对象
  3. 地区类
  4. 因此,当您传递对象时,您无法指定onShow处理程序。但如果你传递了扩展的Marionette.Region

    ,你可以做你想做的事
    var Layout = Backbone.Marionette.Layout.extend({
        template: "#layout-template",
        regions: {
            mini1: Marionette.Region.extend({
                el: "#mini1",
                onShow: function () {
                    console.log("triggered!");
                }
            })
        }
    });
    

    您可以在此处查看此解决方案:http://jsfiddle.net/2CvzR/

    文档在这里:https://github.com/marionettejs/backbone.marionette/blob/master/docs/marionette.region.md#custom-region-types