使商店应用程序范围内的数据可用?

Make data from store app-wide available?

我有一个 base 路由封装了我应用程序中的所有其他路由。

我想让我通过 this.store.find('category') 从商店检索的类别在我的应用程序中随处可用。

我尝试使用以下代码在基本控制器中检索它:

import Ember from 'ember';

export default Ember.ArrayController.extend({
  // retrieve all categories as they are needed in several places
  categories: function() {
    return this.get('store').find('category');
  }
});

并通过以下方式从子控制器创建别名:

categories: Ember.computed.alias('controllers.base.categories')

但它给出了这个错误信息:

Uncaught Error: Assertion Failed: The value that #each loops over must be an Array. You passed function () { return this.get('store').find('category'); }

我该如何解决我的问题?

将其设为计算值 属性。

categories: function() {
  return this.get('store').find('category');
}.property()

控制器在 2.0 中被弃用,所以我会考虑使用服务架构而不是基本控制器架构。