0

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

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

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

4

1 回答 1

1

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

myService: Ember.inject.service(),

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

于 2017-06-19T13:51:22.927 回答