【发布时间】:2014-10-26 02:28:32
【问题描述】:
我有一个带有 div 的模板 #entries 和 #movies 在我的 #entries div 中,我展示了我的电影收藏的模型。在我的#movies div 中,我显示了搜索查询的结果。 (元素的命名很糟糕,我同意)。
在呈现模板的视图中,我有以下事件,
events: ->
"click li": "addEntry"
"click .remove": "destroyEntry"
addEntry: (e) ->
movie_title = $(e.target).text()
@collection.create title: movie_title
appendEntry: (entry) ->
view = new Movieseat.Views.Entry(model: entry)
$('#entries').append(view.render().el)
destroyEntry: (e) ->
thisid = @$(e.currentTarget).closest('div').data('id')
@collection.get(thisid).destroy()
li 元素在#movies div 中呈现。这样我可以从不同的视图单击结果并将它们添加到其他集合中。这行得通,但有一个问题。
我也有这个观点,
initialize: ->
@collection.on('change', @render, this)
@collection.on('add', @appendEntry, this)
@collection.on('destroy', @render, this)
return
问题在于,当集合发生变化时(比如我在其中添加或删除电影时),它会重新呈现模板。这意味着它会重新渲染 #entries 和 #movies div。但现在它只是呈现一个空的 #movies div(没有 searchquery 集合)。
所以我想知道是否可以只渲染模板的一部分。在这种情况下,我只想重新渲染 #entries div,只保留 #movies div。
【问题讨论】:
标签: javascript jquery backbone.js