我正在使用Backbone,Marionette和RequireJS来制作应用程序,但我遇到了Marionette的ItemView。我正在尝试渲染模板,但总是抛出错误。
define(function(require, exports, module) {
var Marionette = require('marionette'),
Backbone = require('backbone');
var loadModule = Marionette.Module.extend({
initialize: function() {
console.log('Load module');
}
});
var template = '<div><%= message %></div>'
var ItemView = Backbone.Marionette.ItemView.extend({
region: '#main',
template: template,
model: {message: 'test'}
});
var view = new ItemView();
view.render();
return loadModule;
});
我的html文件包含一个id为main的div。当我运行上面的代码时,我收到错误: &#39;未捕获的TypeError:无法读取属性&#39; apply&#39;未定义的&#39;当调用view.render()时。
任何建议都会有所帮助!
答案 0 :(得分:2)
您未在实例化时将模型传递给您的视图。当Marionette尝试渲染时,它希望将数据从模型传递到模板函数(在本例中为下划线_.template())。由于您的模板引用了一些数据:
var template = '<div><%= message %></div>'
在这种情况下&#34;消息&#34;,它无法插值。一般来说,你在实例化时会做的事情看起来像这样:
var myModel = new MyModel();
var view = new ItemView({ model: myModel });