如何根据以前的路线在已解析的模型上执行某些逻辑

时间:2014-03-13 20:05:58

标签: ember.js ember-data

让我们想象一下,我有Articles资源,Article有动态细分。

ArticlesRouteArticleRoute使用相同的基础数据加载Article。但ArticlesRoute使用不同的序列化程序使用基本数据 - 重点是不加载索引中的所有文章,关系和其他非必要数据。

使用指向/articles/5(来自索引)的链接转换为ArticleRoute的完整数据。 link-to帮助器的模型使用显式id来触发model挂钩:

link-to 'article', this.id

模型被解雇但是存储的只是基本数据。我只想在reload过渡时调用ArticlesRoute(加载完整数据) - 我希望LoadingRoute

如果我在model.reload()中致电afterModal,那么模板更改前会有延迟(无加载路线)

1 个答案:

答案 0 :(得分:0)

我不知道ember-data部分加载记录的状态是什么。我记得它在一些愿望清单上。我已经成功地这样做了。

而不是调用reload或find我做一个查询。为了使路径模型挂钩,我总是将原语传递给路径(就像你在链接中那样)。

这是我的模型钩子的样子。

model: function(params) {
  var query;

  query = {
    id: params.id, 
    includes: ['users'], 
    fields: ['name', 'date', 'user.name', 'user.whatever']
  };

  return this.store.find('article', query).then( 
    function(results) {
      return results.get('firstObject')
    }
  );
} 

希望这有帮助。