【发布时间】:2011-10-07 03:03:14
【问题描述】:
我刚刚开始使用 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。它将这个错误追溯到 Backbone.js 中的函数f.extend.make。
Backbone.js documentation on view.make 说:
用于创建具有可选属性和 HTML 内容的给定类型 (tagName) 的 DOM 元素的便捷函数。在内部用于创建初始
view.el。
- 是否需要 jQuery 或 Zepto?
- 我能否通过在对
Backbone.View.extend的调用中覆盖view.make来消除这种依赖关系?
【问题讨论】:
标签: javascript jquery backbone.js zepto