Javascript 更改路由时将余烬控制器属性设置为false
我有一个音乐组件,在我的网站的音乐页面中播放从SoundCloudAPI检索的收藏夹歌曲Javascript 更改路由时将余烬控制器属性设置为false,javascript,ember.js,ember-cli,ember-components,Javascript,Ember.js,Ember Cli,Ember Components,我有一个音乐组件,在我的网站的音乐页面中播放从SoundCloudAPI检索的收藏夹歌曲 {{soundcloud-player favorite=currentFavorite sound=currentFavoriteObject position=currentFavoritePosition isPlaying=isPlaying isBuffering=isBuffering}} 问题是,一旦我播放一首歌曲,并且我更改了网站的页面(路线),这些歌曲就会继续播放,为了解决这个问题,我需
{{soundcloud-player favorite=currentFavorite sound=currentFavoriteObject position=currentFavoritePosition isPlaying=isPlaying isBuffering=isBuffering}}
问题是,一旦我播放一首歌曲,并且我更改了网站的页面(路线),这些歌曲就会继续播放,为了解决这个问题,我需要在我更改页面的音乐路线时设置isplay
false
我看到有不同的方法来实现这一目标,但我无法为我的情况找到答案
Mi尝试
来自不同的控制器
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);
}
在这两个功能中,我无法设置isplay
false
,我还看到提到了willTransition
路由操作,我如何使用它?有没有更好的办法?如果有必要,我可以制作一个旋转余烬来更好地再现场景,在您的路线上使用Willtransformation
是一个不错的选择
音乐/route.js
import Ember from 'ember';
const { Route } = Ember;
export default Route.extend({
actions: {
willTransition() {
this.controller.set('isPlaying', false);
}
}
});
在路线上使用willTransition
是一个不错的选择
音乐/route.js
import Ember from 'ember';
const { Route } = Ember;
export default Route.extend({
actions: {
willTransition() {
this.controller.set('isPlaying', false);
}
}
});
今天我将尝试一下,并让您知道,您指的是哪些参数?我们实际上不需要在这里调用super()
,因为willTransition
是一个偶数方法,而不是一个可重写的方法/cc@kitler要回答这个问题,有两件事发生在…参数上。1) 参数
作为所有传入参数的数组在每个JS函数中可用,..
称为扩展运算符(),允许您将所有参数传递给另一个方法<代码>此。_super(…参数)
在重写包含我们不希望通过重写而丢失的功能的内置余烬方法时是必需的。@Kitler我的一位同事指出,在willTransition上调用super是有道理的:如果您混合在另一个具有willTransition()的对象中
已定义。今天我将尝试此方法并让您知道,您指的是哪些参数?我们实际上不需要在此处调用super()
,因为willTransition
是一个偶数方法,而不是一个可重写的方法/cc@kitler要回答这个问题,有两件事发生在…参数上。1) 参数
作为所有传入参数的数组在每个JS函数中可用,..
称为扩展运算符(),允许您将所有参数传递给另一个方法<代码>此。_super(…参数)
在重写包含我们不希望通过重写而丢失的功能的内置余烬方法时是必需的。@Kitler我的一位同事指出,在willTransition上调用super是有道理的:如果您混合在另一个定义了willTransition()
的对象中。