dışından güncellemem gerekiyor. 'Player' adlı bir servisim var ve bir flash nesnesi yüklenmesi bittiğinde servisi güncellemem gerekiyor. AngularJS: Bir hizmeti köşeli
mySongPlayer.factory('player', function() {
var isPlayerLoaded = false;
var playerHolder = '';
window.playerReady = function(thePlayer) {
playerHolder = window.document[thePlayer.id];
addListeners();
isPlayerLoaded = true;
}
var flashvars = {
file:"",
autostart:"true",
skin: "/skins/glow/glow.zip",
}
var params = {
allowfullscreen:"false",
allowscriptaccess:"always"
}
var attributes = {
id:"player1",
name:"player1"
}
swfobject.embedSWF("/player.swf", "player_placeholder", "100%", "40", "9.0.115", false, flashvars, params, attributes);
var playObj;
return playObj || (playObj = {
currentId: 'test', currentUrl: 'url', playerHolder: ''
});
});
Ben
angular.element(DOMElement).injector().get('player')
kullanarak hizmete erişmek için biliyorum ama zaten modülünde oluşturulan örneği güncellemeniz gerekir iken 'oyuncu' yeni bir örneğini döndürür. Bunu yapmanın bir yolu var mı? Sadece oyuncunun bir örneğini istiyorum, ama onu dış javascript'ten başlatmalıyım.
neden 'scope(). MyService' için doğrudan uygulanamaz? enjektör() 'ın kullanılış farkı nedir? get 'to" scope(). myService " – pocesar
Bu örnekte, yapabilirsiniz. Ancak, bu yalnızca hizmetin kapsamın bir özelliği olarak eklendiğinde çalışır, bu her zaman böyle olmaz. Yani 'injector.get()', bunu * tüm * vakalarda çalışmak istediğinizde kullanmak zorunda olduğunuz şeydir. –
'document.querySelector ('[ng-controller]')' kullanarak ne kazanıyorsunuz? sadece '' [ng-controller] ''veya'' [ng-app] ''angular' angular.element()' argümanı olarak sadece iyi çalışıyor gibi görünüyor? – Superole