我有一个音乐组件播放从我网站音乐页面内的SoundCloud API检索到的收藏歌曲。
{{soundcloud-player favorite=currentFavorite sound=currentFavoriteObject position=currentFavoritePosition isPlaying=isPlaying isBuffering=isBuffering}}
问题是,一旦我播放了一首歌并且我改变了网站的页面(路线),歌曲继续播放,要解决它我需要随时设置isPlaying
false
我改变音乐{页面的{1}}。
我看到有不同的方法来实现它,但我无法弄清楚我的情况
Mi尝试
来自不同的控制器
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
路由动作,我该如何使用它?有没有更好的方法呢?如果有必要,我可以制作一个旋转的余烬来更好地再现场景
答案 0 :(得分:8)
在您的路线上使用willTransition
是个不错的选择。
<强>音乐/ route.js 强>
import Ember from 'ember';
const { Route } = Ember;
export default Route.extend({
actions: {
willTransition() {
this.controller.set('isPlaying', false);
}
}
});