1

我有一个音乐组件播放从我网站的音乐页面内的 SoundCloud API 检索到的收藏歌曲。

{{soundcloud-player favorite=currentFavorite sound=currentFavoriteObject position=currentFavoritePosition isPlaying=isPlaying isBuffering=isBuffering}}

问题是,一旦我播放歌曲并更改网站的页面(路线),歌曲就会继续播放,要解决这个问题,我需要在 isPlaying false更改route页面的音乐时进行设置。

我看到有不同的方法可以实现它,但我无法为我的情况弄清楚

米尝试

从不同的控制器

needs:'player',
desactivateIsplaying: function(){
    var controller = this.get('controllers.player');
    controller.set('isPlaying', false);
}

或从不同的路线

desactivateIsPlaying: function(){
    var controller = this.controllerFor('player');
    controller.set('isPlaying', false);
}

在我无法设置的两个功能中isPlaying false,我也看到提到了willTransition路由动作,我该如何使用它?有没有更好的方法呢?如有必要,我可以制作一个旋转余烬以更好地重现场景

4

1 回答 1

8

在您的路线上使用willTransition是一个不错的选择。

音乐/route.js

import Ember from 'ember';

const { Route } = Ember;

export default Route.extend({
  actions: {
    willTransition() {
      this.controller.set('isPlaying', false);
    }
  }
});
于 2016-02-22T00:49:03.593 回答