我遇到Backbone.js View无法渲染的问题。我的代码非常简单,看起来像这样:
TableView = Backbone.View.extend({
initialize : function() {
this.render();
},
render : function() {
var template = _.template($("#table_template").html(), {});
alert(this.el);
this.el.html('Go');
//this.el.html(template);
},
events: {
},
});
这是用于实例化对象并设置el
的代码<script type="text/javascript">
$(document).ready(function() {
var t = $("#table_1");
//This works!!!
t.html('Test');
//Passing the element as the el, never works
var table = new TableView({el : t});
});
</script>
除了它总是在控制台中说:
∪ncaught TypeError: Object #<HTMLDivElement> has no method 'html' .
我在这里做错了吗?我使用的是Jquery.1.7.2,主干0.9.2,下划线1.3.3和json2。
答案 0 :(得分:5)
this.el
是一个元素而不是jQuery对象。试试$(this.el).html()
或this.$el.html()
答案 1 :(得分:0)
应该是
var table = new TableView({el : "#table_1"});