marionette.js的默认行为是将模板附加到由区域选择器指定的元素中。但是,我通常最终必须创建一个特殊的区域类型并覆盖appendHtml函数来代替替换。
这不是太难,但为什么要追加默认值?
我通常会使用空div创建布局模板,以指定区域应该去的位置。然后我在显示时用子模板替换那个div。
我想知道我是否错过了模板的设计模式,使得追加更加直观。
感谢您的帮助。
更新
所以我通常会有一些关于我想要渲染到页面中的内容的视图,并希望将n元素添加到我想要的页面上。我将做javascript,看起来像这样:
ReplaceRegion = Marionette.Region.extend({
open: function(view){
this.$el.replaceWith(view.el);
}
});
App = new Backbone.Marionette.Application();
App.addRegions({
myRegion: {
selector: "#someRegion",
regionType: ReplaceRegion
}
};
var view = new CoolWidgetView();
App.myRegion.show(view);
然后在我的html的某处,我会在混合中抛出一个空div,我希望我的模板显示出来。
<div id="mywidget"></div>
现在,如果它是唯一的子元素,我可以使用一个只是父节点的选择器,但是当我插入的视图有兄弟节点时,这变得更加棘手。
另外,我并不是真的要求更改默认值,因为我想知道是否有更好的方法可以在布局中插入您想要的项目。我对这些东西的布局和设计还是比较新的,所以任何事都有帮助!
感谢Derick编写出色的软件!