繁体   English   中英

Backbone.js:视图未呈现

[英]Backbone.js: View not being rendered

我有一个非常基本的Backbone视图,我正在尝试渲染,但由于某种原因没有任何东西出现在屏幕上。 代码是:

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正确绑定到this.render 此外, this.$el设置为一个有效的jQuery对象(在我的HTML中定义)。

由于您尚未在视图上指定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;
}

小提琴

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM