gpt4 book ai didi

javascript - Backbone.js View 是否需要 jQuery 或 Zepto? (或 : why am I getting “Uncaught TypeError: undefined is not a function” ? )

转载 作者:搜寻专家 更新时间:2023-11-01 05:07:25 26 4
gpt4 key购买 nike

我刚刚开始使用 Backbone.js。我对 Backbone.ModelBackbone.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说:

Convenience function for creating a DOM element of the given type (tagName), with optional attributes and HTML content. Used internally to create the initial view.el.

  1. 是否需要 jQuery 或 Zepto?
  2. 我能否通过在对 Backbone.View.extend 的调用中覆盖 view.make 来消除这种依赖性?

最佳答案

1) 文档说明它需要

either jQuery ( > 1.4.2) or Zepto.

2) View 组件与 jQuery/Zepto API 紧密耦合。您可以重新实现它,但如果您广泛使用 backbone.js,您将重新实现整个界面。

但也许它适用于你的小用例,但由于紧密耦合,我不保证它有效。

关于javascript - Backbone.js View 是否需要 jQuery 或 Zepto? (或 : why am I getting “Uncaught TypeError: undefined is not a function” ? ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6723958/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com