我对Ember Data中`store.filter`方法的行为感到困惑

时间:2013-10-03 13:18:58

标签: ember.js

我对Ember Data的行为感到有些困惑。

请查看此示例:http://jsbin.com/ETEwUxU/9/edit。 单击“转到活动”,然后单击“转到索引”。请一遍又一遍地重复此导航。 并查看浏览器的Javascript控制台。

我的问题是......

  1. 为什么在我们前往store.filter路线时调用index的功能?
  2. 为什么store.filter函数调用的数量会随着我们重复上去而继续增加?
  3. 当我们在store.filter的模型挂钩中取消store.find('post');时,为什么ActiveRoute的函数调用次数会增加?
  4. 此行为是Ember Data的一项功能吗?

1 个答案:

答案 0 :(得分:0)

当记录添加到另一个记录数组时,如果过滤器是最新的,它会触发过滤器数组重新检查:

  

**       采用类型和过滤器函数,并返回一个实时的RecordArray       新记录加载到商店或创建时保持最新       本地。

每次点击路线时都会继续创建实时记录数组,每次调用find时都会保持最新状态。

您可以将帖子向下移动一级并在帖子资源上获取它们,并将过滤器存储在该级别。然后,当您点击活动路线时,您可以从他上方的控制器中获取已过滤的列表。

AKA PostsActiveController从PostsController获取过滤后的结果集。

http://jsbin.com/OCAKIjA/4/edit