バックボーン アプリケーションをセットアップしようとしています。以下のこのコードは、次のエラーを引き起こします。
キャッチされていない TypeError: オブジェクト # にはメソッド 'append' がありません
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;
}
);
しかし、これは機能します (「render」関数を参照してください):
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
よろしくお願いします!