[英]Do Backbone.js views require jQuery or Zepto? (Or: why am I getting “Uncaught TypeError: undefined is not a function”?)
我剛開始使用 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
中的 function f.extend.make。
view.make上的view.make
文檔說:
方便 function 用於創建給定類型 (tagName) 的 DOM 元素,具有可選屬性和 HTML 內容。 在內部用於創建初始
view.el
。
Backbone.View.extend
的調用中覆蓋view.make
來刪除這種依賴關系嗎?1)文檔說明它需要
jQuery (> 1.4.2) 或 Zepto。
2) 視圖組件與 jQuery/Zepto API 緊密耦合。 您可以重新實現它,但如果您廣泛使用 backbone.js,您將重新實現整個接口。
但也許它適用於您的小用例,但由於緊密耦合,我不能保證它有效。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.