我有一个变量"玩家"这是一个数组。每当服务变量发生变化时,我想在另一个组件中计算变量。我使用了 observer 和计算属性,但组件观察者没有被调用或更改。
**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 不会被计算
请帮助我了解如何获得它或正确的方法。
答案 0 :(得分:1)
在组件内部,要访问服务,您需要注入它。假设服务文件名为my-service.js
myService: Ember.inject.service(),
newPlayers
- 是一个计算属性,你需要在组件js / hbs的代码中的某个地方使用它(即获取它),否则这将被计算,否则它将不会。