当 ember 服务变量更改时,组件观察器如何更改



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

**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}}

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

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

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

myService: Ember.inject.service(),

newPlayers - 是一个计算属性,您需要在组件 js/hbs 中的代码中的某个地方使用它(即获取它(,只有这样才会计算它,否则它不会。

最新更新