我刚开始使用 Backbone.js。我已经分类Backbone.Model
和Backbone.View
:
var Message = Backbone.Model.extend();
var MessageView = Backbone.View.extend({
tagName: 'div',
className: 'message',
template: _.template('{{ html }}'),
render: function(){
this.template({
html: this.model.html
});
this.el.className.append(' ' + this.model.type);
return this;
}
});
然后我尝试为每个创建一个实例:
var message = new Message({html: html, type: type});
var messageView = new MessageView({model: message});
最后一行导致错误(在 Chrome 12 中):Uncaught TypeError: undefined is not a function
. 它将这个错误追溯到f.extend.make
Backbone.js 中的函数。
Backbone.js文档view.make
说:
用于创建给定类型 (tagName) 的 DOM 元素的便捷函数,具有可选的属性和 HTML 内容。在内部用于创建初始
view.el
.
- 它需要 jQuery 还是 Zepto?
- 我可以通过覆盖
view.make
我的调用来删除这种依赖关系Backbone.View.extend
吗?