ember服务变量变化时组件观察器如何变化

How does component observer change when the ember service variable changes

我有一个带有变量 "players" 的服务,它是一个数组。每当服务变量发生变化时,我想计算另一个组件中的变量。我使用了 observercomputed 属性 但组件观察器没有被调用或更改。

**roster.js:**
export default Ember.Service.extend({
    players:{},
});


**component.js:**
export default Ember.Component.extend({
  positions:config.APP.POSITIONS.cricket,
  roster: Ember.inject.service(),
  newPlayers: Ember.computed('roster.players',function(){
    console.log("Am the computed value"); 
    //This return statment is just an example that i want to change the result object
    return "am in "+this.get('roster').players.length
  }),
});


**component.hbs**
<div class="listview">
  <div class="player-list-panel">
   Length: {{roster.players.length}}
   New Players: {{newPlayers}}
  </div>
</div> 
{{yield}}

第一次在页面加载组件时调用 newPlayers。当服务中的玩家对象更新时,newPlayers 不会被计算

请帮助我如何获得它或正确的方法。

在组件内部,要访问服务,您需要注入它。假设服务文件名为 my-service.js

myService: Ember.inject.service(),

newPlayers- 是计算的 属性,您需要在代码中的某处使用它(即获取它)在组件 js/hbs 中,然后才会计算它否则不会。