我正在建立一个音乐网站,其中有多首歌曲,每个都有自己的播放/暂停按钮,然后是一个具有主播放/暂停按钮的全局播放器。我无法弄清楚如何触发计算出的属性,这样当我单击单个歌曲上的播放按钮时,主播放/暂停按钮也会从播放切换为暂停,反之亦然。Ember.js - 在控制器外部触发属性
我有以下代码
Tracks.TrackController = Ember.ObjectController.extend({
currentTime: 0,
isLoaded: false,
isPlaying:false,
songStarted:false,
actions: {
play: function(){
var track_id = this.id;
var mySound = soundManager.createSound({
id: track_id,
url: 'https://api.soundcloud.com/tracks/' + track_id + '/stream?client_id=d61f17a08f86bfb1dea28539908bc9bf',
autoplay: false,
whileplaying: function() {
$('#positionBar').css('width', ((this.position/this.duration) * 100) + '%');
},
});
songStarted:true;
this.set("isPlaying", true);
this.set('mySound', mySound);
soundManager.stopAll();
mySound.play();
},
pause: function(){
var mySound = this.get('mySound');
this.set("isPlaying", false);
this.set("isPaused", true);
if(mySound && mySound.pause){
mySound.pause();
}
},
resume: function(){
var mySound = this.get('mySound');
this.set("isPlaying", true);
this.set("isPaused", false);
mySound.resume();
}
}
});
,并以此为标记:
{{#if isPlaying}}
<li class="playBtn pause"><button {{action 'pause' this}} class="play-btn sm2_button" id="masterPlayBtn"></button></li>
{{else}}
{{#if isPaused}}
<li class="playBtn"><button {{action 'resume' this}} class="play-btn sm2_button" id="masterPlayBtn"></button></li>
{{else}}
<li class="playBtn"><button {{action 'play' this}} class="play-btn sm2_button" id="masterPlayBtn"></button></li>
{{/if}}
{{/if}}
我想我需要将动作添加到
Tracks.TracksController = Ember.ArrayController.extend({
});
控制器,但那是我迷路了。我似乎无法弄清楚如何将isPlaying设置为主播放/暂停按钮,并调用操作,以便当我点击主暂停/播放按钮时,它会找到一首特定的歌曲并播放。