这是我的布局 View :
define(["marionette", "lodash", "text!home/template.html"],
function(Marionette, _, templateHTML) {
var HomeView = Marionette.LayoutView.extend({
template: _.template(templateHTML),
regions: {
ad: ".adspace",
products: ".products"
}
});
return HomeView;
});
这是我的 app.js:
define(["marionette", "backbone", "router", "home/view"],
function(Marionette, Backbone, Router, HomeView) {
'use strict';
var App = new Marionette.Application();
App.on('start', function() {
Backbone.history.start();
new HomeView();
});
return App;
});
这是我的 router.js
define(["backbone", "home/view"], function(
Backbone,
HomeView
){
'use strict';
var Router = Backbone.Router.extend({
routes: {
"": "index"
},
index: function() {
console.log("HEYEEY");
return new HomeView().render();
}
});
return new Router();
});
当我尝试在浏览器中查看页面时,布局 View 未呈现。不确定我在这里做错了什么
最佳答案
尝试在布局 View 上定义一个 el
属性:
var HomeView = Marionette.LayoutView.extend({
el: "#dom-element",
template: _.template(templateHTML),
regions: {
ad: ".adspace",
products: ".products"
}
});
或者使用区域来显示布局 View :
var region = new Marionette.Region({"el": "#container"});
var layoutView = new HomeView();
region.show(layoutView);
这应该可行,因为 LayoutViews 是从常规 Marionette Itemviews 扩展而来的。
关于javascript - Marionette LayoutView 不渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31140759/