Ember.js 转换为微光组件–;服务中的动态属性

Ember.js 转换为微光组件–;服务中的动态属性,ember.js,glimmer.js,Ember.js,Glimmer.js,我正在尝试构建一个对服务中属性的更改做出反应的Glimmer组件,请参见下文,我正在尝试使该组件更新get playing以响应audioPlayer url和状态的更改-当在下面的play操作中按下play按钮时,这些更改会被更改。。。。这不起作用,而且我还没有找到任何支持这种行为的文档 import { action } from '@ember/object'; import { inject as service } from '@ember/service'; export def

我正在尝试构建一个对服务中属性的更改做出反应的Glimmer组件,请参见下文,我正在尝试使该组件更新get playing以响应audioPlayer url和状态的更改-当在下面的play操作中按下play按钮时,这些更改会被更改。。。。这不起作用,而且我还没有找到任何支持这种行为的文档

import { action } from '@ember/object';
import { inject as service } from '@ember/service'; 

export default class ShowAudioEpisodeComponent extends Component {
  
  @service audioPlayer;
  
  get playing() {
    return this.audioPlayer.url == this.args.epi.audioUrl && this.audioPlayer.status == "playing";
  }

  @action
  play() {
    if (this.playing) {
      this.audioPlayer.pause(this.args.epi);
    } else {
      this.audioPlayer.playEpisode(this.args.epi);
    }
  }

}

audioPlayer
服务必须将
url
status
声明为,或者必须始终使用is
audioPlayer更新它们。url
标记为跟踪?否,如果需要,不确定其语法?您需要告诉余烬属性可以更改。否则,getter中的派生状态(如
get playing(){}
和模板中的用法)将不会在更改时更新。请在指南中找到更多的细节:谢谢卢克,我会在有时间的时候尝试一下,看看是否可以让它这样工作!