gpt4 book ai didi

javascript - 在另一个模板的元素上引发单击事件

转载 作者:行者123 更新时间:2023-12-03 11:34:49 25 4
gpt4 key购买 nike

我制作了一个用于保存和显示模型的 View 。有这样的事件,

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 函数。

但我使用不同的 View 来显示列表中的电影集合。现在我想将 click li 事件连接到不同模板上的 li。这可能吗?如果是这样,怎么办?

最佳答案

在您的其他 View 中,您可以使用相同的数据源。在本例中,它是电影的集合。由于它是主干,并且 View 实际上只是数据模型的表示,因此请使用数据来呈现或触发 View 中的更改。

在另一个 View 中,观察正在操作的集合的变化。当您真正关心的是正在更改的数据时,无需委托(delegate)事件。

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

关于javascript - 在另一个模板的元素上引发单击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26563644/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com