为什么我要链接$ el

时间:2013-05-17 09:35:30

标签: javascript backbone.js

目前我正在挖掘Backbone.js,我想知道为什么我必须链接$el(在render()之后),而我正在创建我的{{1的新实例}}

listItemView

更新

渲染方法

    // autoCompleteView.js

    /**
     * Create a new instance of {listItem} and
     * append it to result list.
     *
     * @param item
     * @see listItem
     * @private
     */
    _addResultListItem: function (item) {

        this.$el.append(
            new this.listItem({
                model: item,
                parent: this
            }).render().$el
        );

    }

ItemView控件

    // autoCompleteView.js

    render: function () {

        // bind events
        this.input
            .keyup(this.keyup.bind(this))
            .keydown(this.keydown.bind(this))
            .after(this.$el);

        return this;
    }

console.log(new this.listItem({model:item,parent:this})。render());

log output

1 个答案:

答案 0 :(得分:4)

el$el(jQuery wrapped el)是视图所代表的DOM元素。

渲染时,将输出插入/附加到这些元素。

常规使用的view.$el.append(otherView.render().$el)结果(在许多示例中使用),渲染返回视图本身,并且在包含所需内容之前需要呈现视图。

无需将其链接,您也可以将其分为两个语句otherView.render()view.$el.append(otherView.$el)