问题描述
在我的backbone.js 应用程序中,有一个Trips 集合
,其中包含Trip 模型
,它与LocalStorage
一起使用.我可以调用 Trips.create(form_attributes)
来创建并保存到 Todos 商店
的行程.
In my backbone.js app, there is a Trips collection
that holds Trip models
, which is working with LocalStorage
. I am able to call Trips.create(form_attributes)
to create and save a trip to the Todos store
.
当我第一次加载我的应用程序时,我调用 Trips.fetch({ success: trips_fetch_success })
,并且 trips_fetch_success
收到一个显示 Trip 模型的响应
Trips 集合
保存.
When I first load my app, I call Trips.fetch({ success: trips_fetch_success })
, and trips_fetch_success
receives a response that shows the Trip models
that the Trips collection
holds.
我尝试将 refresh
和 change
事件绑定到 Trips 集合
,但这些事件没有被捕获,这让我相信我对 Trips.fetch
触发哪些事件有错误的想法.
I have tried to bind refresh
and change
events to the Trips collection
, but these events are not being caught, making me believe I have the wrong idea about which events Trips.fetch
triggers.
我的问题:Trips.fetch
应该触发哪些事件?事件是在集合上触发还是在每个单独的 Trip 模型
上触发?
My question: which events should Trips.fetch
trigger? And are the events triggered on the collection or on each of the individual Trip models
?
推荐答案
Collection.fetch()
将在成功时调用 reset
,这反过来会触发 'reset' 事件.集合重置事件的任何订阅者都应该收到该事件.
Collection.fetch()
will call reset
on success, which in turn will trigger a 'reset' event. Any subscribers to the collections reset event should receive the event.
这里的关键是成功".我遇到了这个问题,只是发现主干正在默默地吞下我的错误消息.传入至少记录到 console.log()
的错误处理程序,然后查看发生了什么:
The key here is "on success." I had this problem, only to discover that backbone was silently swallowing my errors messages. Pass in an error handler that, at least, logs to console.log()
, and see what's happening:
trips.fetch({error: function() { console.log(arguments); }});
(注意:旧版本的backbone.js 会触发刷新"而不是重置")
(Note: Old versions of backbone.js will trigger "refresh" instead of "reset")
这篇关于在 Backbone.js 集合上调用 fetch() 时会触发哪些事件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!