代码之家  ›  专栏  ›  技术社区  ›  Real Dreams

木偶表演事件未触发

  •  0
  • Real Dreams  · 技术社区  · 11 年前

    我希望在显示任何区域后执行显示代码。我尝试了:

    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 回复  |  直到 11 年前
        1
  •  2
  •   Dmytro Yarmak    11 年前

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

    1. 带选择器的字符串
    2. 对象 selector regionType 财产
    3. 区域类别

    因此,当您传递对象时,无法指定 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