更改路由时将 Ember 控制器属性设置为 false
Set Ember controller property false when changing route
我有一个音乐组件,播放从我网站的音乐页面中的 SoundCloud API 检索到的收藏歌曲。
{{soundcloud-player favorite=currentFavorite sound=currentFavoriteObject position=currentFavoritePosition isPlaying=isPlaying isBuffering=isBuffering}}
问题是一旦我播放一首歌曲并更改了网站的页面(路由),歌曲就会继续播放,为了解决这个问题,我需要在更改页面的音乐route
时设置isPlaying
false
。
看到有不同的方法可以实现它,但我无法弄清楚我的情况
小米尝试
从不同的控制器
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
路由动作,我该如何使用它? 有没有更好的方法呢?如有必要,我可以制作一个 twiddle 余烬以更好地重现场景
在路线上使用willTransition
是一个不错的选择。
音乐/路线.js
import Ember from 'ember';
const { Route } = Ember;
export default Route.extend({
actions: {
willTransition() {
this.controller.set('isPlaying', false);
}
}
});
相关文章:
- 将属性设置为未定义时未通知观察者
- 是否有任何内置方法可以更改JavaScript对象'的属性设置为某个值
- 附加'沙箱'属性设置为动态创建的iframe以停止重定向
- 如何将按钮的数据属性设置为输入[type=text]中设置的任何值
- 在jquery中,从同一对象的属性设置输入字段和标签的正确方法是什么
- 当可见属性设置为 false 时,使用 JavaScript 删除空格
- 无法使用 Snap.SVG将“填充”属性设置为“继承”
- 使用jQuery为属性设置新值
- 是否可以通过属性's值,并将属性设置为parentNode
- 如何使用按钮的jsp点击事件将属性设置为struts-bean
- 在ember.js记录上使用toJSON,将其中一个属性设置为null
- javascript函数属性设置器中的延迟
- 添加“;选中'属性设置为jquery中的复选框
- jQuery/JavaScript按属性设置数组
- Dojo.将JSon中的属性设置为HTML属性
- 将class属性设置为元素不适用于javascript和jquery
- 将属性设置为对对象的引用
- 如何将显示属性设置为与内联!重要的
- jQuery-根据HTML属性设置CSS维度
- 为什么我不能在 JavaScript 中将对象属性设置为空字符串