ES6 ile hizmet oluştururken $ http gibi Angular yerleşik hizmetlerine erişirken sorun yaşıyorum. Örneğin, bir AJAX araması yapacak ve sonra da bazı şeyler yapacak bir "ResultsFinder" hizmeti oluşturuyorum. Sorun şu ki, kurucudaki $ http değerine erişebileceğim (argüman olarak iletirsem), ancak diğer yöntemlere (getResults gibi) erişemem.ES6 (AngularJS) ile hizmetler
(() => {
'use strict';
class ResultsFinder {
constructor($http) {}
getResults() {
return 'ResultsFinder';
}
}
/**
* @ngdoc service
* @name itemManager.service:ResultsFinder
*
* @description
*
*/
angular
.module('itemManager')
.service('ResultsFinder', ResultsFinder);
}());
İçinde getResults ben $ erişimi http gerekmez:
bu kod örneğine bakın.(() => {
'use strict';
class ResultsFinder {
constructor($http) {
this.$http = $http;
}
getResults() {
// Here I have access to this.$http
return 'ResultsFinder';
}
}
/**
* @ngdoc service
* @name itemManager.service:ResultsFinder
*
* @description
*
*/
angular
.module('itemManager')
.service('ResultsFinder', ResultsFinder);
}());
Herkes bu işlemek için doğru yolu hakkında bana bazı tavsiyelerde bulunabilir: Ben doğru bu gibi hissetmiyorum şey yapmalıyım erişimi için?
içe ve diğer yöntemlere erişebilirsiniz. Bunu yaparken yanlış bir şey yok. – Pierrickouw
O zaman hizmet oluşturmanın propper yolu bu mu? Bu hizmetle "global" hizmetlere erişmek zorunda kalacağım. – jeffarese
Hizmet, küresel değil. Bu sınıfın bir üyesidir. Tarayıcılarda, global vars, 'window'ın özellikleridir. pencere. $ http.get ("/") 'geçersiz. TypeScript ile, üyeyi "private" olarak ekleyebilirsin. – Martin