Reputation: 25542
Here is my LayoutView:
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;
});
Here is my 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;
});
And here is my 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();
});
When I try to view the page in the browser, the layoutview isn't rendered. Not sure what I am doing wrong here
Upvotes: 1
Views: 350
Reputation: 18869
Try to either define an el
property on the layoutView:
var HomeView = Marionette.LayoutView.extend({
el: "#dom-element",
template: _.template(templateHTML),
regions: {
ad: ".adspace",
products: ".products"
}
});
or use a region to show the layoutview:
var region = new Marionette.Region({"el": "#container"});
var layoutView = new HomeView();
region.show(layoutView);
This should work because LayoutViews are extended from regular Marionette Itemviews.
Upvotes: 2