更改路线

时间:2016-02-21 22:09:40

标签: javascript ember.js ember-cli ember-components

我有一个音乐组件播放从我网站音乐页面内的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路由动作,我该如何使用它?有没有更好的方法呢?如果有必要,我可以制作一个旋转的余烬来更好地再现场景

1 个答案:

答案 0 :(得分:8)

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

<强>音乐/ route.js

import Ember from 'ember';

const { Route } = Ember;

export default Route.extend({
  actions: {
    willTransition() {
      this.controller.set('isPlaying', false);
    }
  }
});