【问题标题】:Conversion to Glimmer components – dynamic property in service转换为 Glimmer 组件——服务中的动态属性
【发布时间】:2020-08-10 13:53:09
【问题描述】:

我正在尝试构建一个 Glimmer 组件,该组件对服务中的属性更改做出反应,请参见下文,我正在尝试使组件更新 get 播放以响应 audioPlayer url 和状态的更改——这些更改已更改当在下面的播放动作中按下播放按钮时......这不起作用,我无法找到任何文档来支持这种行为。

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);
    }
  }

}

【问题讨论】:

标签: ember.js glimmer.js


【解决方案1】:

audio-player 服务必须将urlstatus 声明为@tracked,或者必须始终使用set 更新它们

【讨论】:

  • 谢谢卢克,我有时间会试试这个,看看我能不能让它工作起来!
猜你喜欢
  • 1970-01-01
  • 2016-11-13
  • 2015-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多