我有一个非常基本的主干 View ,我正在尝试渲染,但由于某种原因,屏幕上没有显示任何内容。代码是:
var UserList = Backbone.View.extend({
tagName: 'ul',
id: 'user-list',
initialize: function () {
_.bindAll(this, 'render');
},
render: function () {
console.log(this.$el.html()); // LOG #1
this.$el.html('<li>Is this showing up?</li>');
console.log(this.$el.html()); // LOG #2
}
});
var userList = new UserList();
userList.render();
第一次我记录el
的内容时,它什么也没显示,第二次它有正确的内容,但屏幕上没有显示任何内容。谁能想到为什么会发生这种情况?我知道渲染函数正在触发,并且 this
已正确绑定(bind)到 this.render
。另外,this.$el
设置为有效的 jQuery 对象(在我的 HTML 中定义)。
最佳答案
由于您没有在 View 上指定el
,因此它不会附加到任何地方的 DOM。您需要明确附加它:
var userList = new UserList();
$("body").html(userList.render());
并且还从 render
返回一个值:
render: function () {
console.log(this.$el.html()); // LOG #1
this.$el.html('<li>Is this showing up?</li>');
console.log(this.$el.html()); // LOG #2
return this.$el;
}
关于javascript - Backbone.js: View 未渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22108370/