Ember服务到组件

时间:2015-10-07 13:20:14

标签: ember.js ember-data ember-cli

我有一项服务,我使用Ember.inject

通过组件进行调用

应用程序/通知/ service.js

import Ember from 'ember';

export default Ember.Service.extend({
  store: Ember.inject.service('store'),
  notifications: function() {
    return this.get('store').findAll('notification');
  },
});

然后我的app / components / app-notifications / component.js:

import Ember from 'ember';

export default Ember.Component.extend({
  notifications: Ember.inject.service('notifications'),
});

然后我的组件模板位于/app/components/app-notifications/template.hbs

{{notifications}}
<ul>
  {{#each notifications as |notification|}}
     <li>{{notification.title}} <small>{{moment-from-now dateAdded}}</small>     </li>
  {{/each}}
</ul>

但是我无法通过模型显示数据?我似乎无法在文档中找到相关信息,所以我想知道是否有人知道如何做到这一点?

2 个答案:

答案 0 :(得分:3)

是否有必要将notifications作为服务实施?

执行此任务的常用方法是使用计算属性:

import Ember from 'ember';

export default Ember.Component.extend({
  notifications: Ember.computed( function () {
    return this.store.findAll('notification');
  })
});

答案 1 :(得分:0)

Solution from OP:

好的,所以我使用了

import Ember from 'ember';

export default Ember.Service.extend({
  store: Ember.inject.service('store'),
  notifications: function() {
    return this.get('store').findAll('notification');
  }.property(),
});