改变路线时设置 Ember controller 属性 false
Set Ember controller property false when changing route
我有一个音乐组件播放从我网站的音乐页面中的 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
路由动作,我该如何使用它?有没有更好的方法呢?如果有必要,我可以做一个旋转 ember 来更好地重现场景
在您的路线上使用 willTransition
是一个不错的选择。
music/route.js
import Ember from 'ember';
const { Route } = Ember;
export default Route.extend({
actions: {
willTransition() {
this.controller.set('isPlaying', false);
}
}
});
我有一个音乐组件播放从我网站的音乐页面中的 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
路由动作,我该如何使用它?有没有更好的方法呢?如果有必要,我可以做一个旋转 ember 来更好地重现场景
在您的路线上使用 willTransition
是一个不错的选择。
music/route.js
import Ember from 'ember';
const { Route } = Ember;
export default Route.extend({
actions: {
willTransition() {
this.controller.set('isPlaying', false);
}
}
});