目前我正在挖掘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
);
}
// autoCompleteView.js
render: function () {
// bind events
this.input
.keyup(this.keyup.bind(this))
.keydown(this.keydown.bind(this))
.after(this.$el);
return this;
}
答案 0 :(得分:4)
el
和$el
(jQuery wrapped el)是视图所代表的DOM元素。
渲染时,将输出插入/附加到这些元素。
常规使用的view.$el.append(otherView.render().$el)
结果(在许多示例中使用),渲染返回视图本身,并且在包含所需内容之前需要呈现视图。
无需将其链接,您也可以将其分为两个语句otherView.render()
和view.$el.append(otherView.$el)
。