Backbone.js视图未渲染EL

3

我遇到了Backbone.js视图不渲染的问题。我的代码非常简单,看起来像这样:

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>

但是控制台总是显示以下错误:未捕获的TypeError: Object #<HTMLDivElement>没有html方法。 我在这里做错了什么?我正在使用Jquery.1.7.2、backbone 0.9.2、underscore 1.3.3和json2。


是的,这样我就可以将其标记为正确了。我希望他们提供的教程也是正确的 :P - Devin Dixon
你能提供一个链接,指出可以做到这一点的教程吗? - Esailija
这个:http://backbonetutorials.com/what-is-a-view/ ...除非我读错了。 - Devin Dixon
是的,这是一个错误,作者甚至在几段之前就说el是一个元素而不是jQuery对象,但是在this.el.html(template);中却将其用作jQuery对象。文章的评论也指出了这一点,但他还没有更新它... - Esailija
2个回答

5

this.el 是一个元素而不是 jQuery 对象。尝试使用 $(this.el).html()this.$el.html()


0

应该是这样的

var table = new TableView({el : "#table_1"});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接