Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 更改路由时将余烬控制器属性设置为false_Javascript_Ember.js_Ember Cli_Ember Components - Fatal编程技术网

Javascript 更改路由时将余烬控制器属性设置为false

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}} 问题是,一旦我播放一首歌曲,并且我更改了网站的页面(路线),这些歌曲就会继续播放,为了解决这个问题,我需

我有一个音乐组件,在我的网站的音乐页面中播放从SoundCloudAPI检索的收藏夹歌曲

{{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()
的对象中。