javascript - 在 Marionette LayoutView 区域调用 `show`

标签 javascript backbone.js marionette

我有这个布局 View :

var appLayoutView = Backbone.Marionette.LayoutView.extend({
    template: function() {
        return "some template string";
    },
    regions: {
        notify: "[data-region='Notify']"
    },
    onShow: function() {
        this.regions.notify.show(new notifyView());
    }
});

我这样称呼:

mainLayout.app.show(appLayout);

所以理想情况下,我希望当我运行上面的行时(本质上是当布局 View 放入 DOM 时),notifyView 被渲染到“notify”区域。然而 this.regions.notify 只是一个字符串。我怎样才能实现我在这里想做的事情?基本上在布局 View 类中具有“通知”的渲染逻辑,并且不受调用行控制。

最佳答案

我找不到任何文档显示添加此内容的位置,但 LayoutView 应该有一个 getRegion 方法: https://github.com/marionettejs/backbone.marionette/blob/master/src/marionette.layoutview.js#L74

所以你的代码看起来像:

var appLayoutView = Backbone.Marionette.LayoutView.extend({
    template: function() {
        return "some template string";
    },
    regions: {
        notify: "[data-region='Notify']"
    },
    onShow: function() {
        this.getRegion('notify').show(new notifyView());
    }
});

关于javascript - 在 Marionette LayoutView 区域调用 `show`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26715850/

相关文章:

javascript - JS 文件双重包含在 Rails 应用程序中

javascript - 如何下载网页组件?

javascript - 循环 JSON 并将内容分成三列

javascript - backbone.stickit 不随模型更改而更新

javascript - 在 Marionette 中使用 appendHtml() 时是否可以避免添加默认 View 元素 "div"?

javascript - 如何使用 LayoutView 显示 Collections?

javascript - 使用 this 关键字在对象字面量中未定义属性变量

javascript - jQuery 追加,不完全可用?

javascript - 从输入将数据添加到模型

events - 事件未在 Marionette Itemview 中触发