define([
'jquery',
'underscore',
'backbone',
'text!modules/index/templates/container.html'
], function($, _, Backbone, container_temp){
var indexView = Backbone.View.extend({
el: $('.main_container'),
initialize:function(){
_.bindAll(this, 'render');
},
render:function(){
var $this = this;
var $el = this.el;
$.get('/js/index/render', {}, function(data){
var dat = JSON.parse(data);
$this.pars = dat;
var tpl = _.template(container_temp, dat);
$el.html(tpl);
});
}
});
return new indexView;
});
运行此代码应该用 HTML 填充 $el。但是,我的浏览器在$el.html(tpl);
.
Uncaught TypeError: Object #<HTMLDivElement> has no method 'html'
要解决这个问题,我必须这样做:$($el).html(tpl);
让 jquery 注册。
这似乎很尴尬。在我过去的项目中,我总是以前一种方式进行操作,并且一直有效。