我正在尝试设置Backbone应用程序。下面的代码给出了以下错误:
未捕获的TypeError:对象#没有方法'追加'
define(
[
'jQuery',
'Underscore',
'Backbone',
'text!templates/start.html'
],
function ($, _, Backbone, startTemplate)
{
var StartView = Backbone.View.extend({
// properties
el: $('#container'),
initialize: function ()
{
this.render();
},
render: function ()
{
var template = _.template( startTemplate );
this.el.append( template );
}
});
return new StartView;
}
);
但这有效(见'渲染'功能):
define(
[
'jQuery',
'Underscore',
'Backbone',
'text!templates/start.html'
],
function ($, _, Backbone, startTemplate)
{
var StartView = Backbone.View.extend({
// properties
el: $('#container'),
initialize: function ()
{
this.render();
},
render: function ()
{
var template = _.template( startTemplate );
$(this.el).append( template );
}
});
return new StartView;
}
);
我传递$('#container')作为'el'属性,所以我认为这应该可以正常工作。为什么我必须再次使用jQuery表示法。 $(this.el)而不是this.el
许多人提前感谢!
答案 0 :(得分:13)
在Backbone中,您只需将ID或类名提供给el
:
el: '#container'
然后,this.el
引用DOM元素,并且(如果您正在使用最新的Backbone),this.$el
引用jQuery对象。
如果您的Backbone是最新的,则不需要$(this.el)