我对Ember Data的行为感到有些困惑。
请查看此示例:http://jsbin.com/ETEwUxU/9/edit。 单击“转到活动”,然后单击“转到索引”。请一遍又一遍地重复此导航。 并查看浏览器的Javascript控制台。
我的问题是......
store.filter
路线时调用index
的功能?store.filter
函数调用的数量会随着我们重复上去而继续增加?store.filter
的模型挂钩中取消store.find('post');
时,为什么ActiveRoute
的函数调用次数会增加?此行为是Ember Data的一项功能吗?
答案 0 :(得分:0)
当记录添加到另一个记录数组时,如果过滤器是最新的,它会触发过滤器数组重新检查:
** 采用类型和过滤器函数,并返回一个实时的RecordArray 新记录加载到商店或创建时保持最新 本地。
每次点击路线时都会继续创建实时记录数组,每次调用find时都会保持最新状态。
您可以将帖子向下移动一级并在帖子资源上获取它们,并将过滤器存储在该级别。然后,当您点击活动路线时,您可以从他上方的控制器中获取已过滤的列表。
AKA PostsActiveController从PostsController获取过滤后的结果集。