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 编写了出色的软件!