我MusicPlayer.js
角服務有包裹在$rootScope.$apply
一個回調函數,更新的特定對象(musicPlayer.currentPlaybackTime
),並(通過申請$rootScope
)共享給所有其他控制器。
我知道你理想上想要限制任何$rootScope
污染,所以我在尋找可能的重構選項,它會將應用方法調用到$rootScope
,但允許我的更新對象在多個控制器之間共享。
我的研究表明,我需要登記的其他控制器,需要我currentPlaybackTime
對象(即PlayerDashboardCtrl.js
,PlaylistCtrl.js
和AlbumListCtrl.js
),但我想明白了什麼是這樣做的最有效的方式。
謝謝。
var setSong = function(song) {
currentBuzzObject = new buzz.sound(song.audioUrl, {
formats: ['mp3'],
preload: true
});
currentBuzzObject.bind('timeupdate', function() {
$rootScope.$apply(function() {
musicPlayer.currentPlaybackTime = currentBuzzObject.getTime();
});
});
musicPlayer.currentSong = song;
};