我提出了保存和显示模型的观点。它有这样的事件,
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元素并单击它,addEntry
事件将被触发并将模型保存到我的Rails数据库中。我的destroyEntry
事件也可以删除模型。当模型添加到集合时会触发appendEntry
函数。
但是我使用不同的视图来显示列表中的电影集合。现在我想将click li事件连接到另一个模板上的li。这可能吗?如果是这样,怎么样?
答案 0 :(得分:1)
在其他视图中,您可以使用相同的数据源。在这种情况下,它是电影的集合。由于它是主干,并且视图实际上只是数据模型的表示,因此使用数据来呈现或触发视图中的更改。
在另一个视图中,观察正在操作的集合上的更改。当您真正关心的是数据被更改时,无需委托事件。
OtherView = Backbone.View.extend
initialize: (params) ->
# this could also be the model, I'm not sure how you have this configured
@listenTo params.movieseats, "change", @updateMovies
updateMovies: ->
# manage the view here