Backbone.js观点&父元素

时间:2012-02-15 11:05:41

标签: view backbone.js

当一个backbone.js - 视图知道它的父元素,当你有一个包含很少逻辑的简单视图,或者它是不好的做法时,它是否有意义?

像这样:

var BooklistRow = Backbone.View.extend({
    tagName: "li",
    parent: "#booklist",

    render: function() {
        $(this.el).html("<b>" + this.model.get("title") + "</b>");
        $(this.parent).append(this.el);
        return this;
    }
});  

1 个答案:

答案 0 :(得分:2)

如果一个视图本身不知道什么,那就更好了。这将使其更具可重用性。

同样在您的示例中,您将在渲染上添加父级。在某些时候,您可能希望在将BooklistRow附加到父级后重新呈现它。

我认为父母最好渲染和添加孩子:

var Booklist = Backbone.View.extend({
tagName: "ul",

render: function() {
    // maybe should remove existing books here first
    this.model.each(this.addOneBook);
    return this;
},
addOneBook: function(book) {
   var view = new BooklistRow({
     model: book
   });
   $(this.el).append(view.render().el);}});

现在,如果一本书改变了,它就可以重新呈现自己而不知道列表。