Bu bilgilere dayanan bir dizi hizmet kurmadan önce sunucudan bazı bilgiler (şema) almam gerekir.Hizmete çözümlenmiş bir sözün enjekte edilmesi
Sunucum, bir modelin çeşitli özelliklerini tanımlayan bir şema sunuyor. şema bağlı diğer hizmetlerle içine ben şema nesne enjekte etmek istiyorum
services.factory('schema', function($q, $http) {
var deferred = $q.defer();
$http.get('schema/').then(function(response) {
schema = // some function of response.data
deferred.resolve(schema);
}, function() {
deferred.reject('There was a problem fetching the schema');
});
return deferred.promise;
});
değil, söz,: Benim açısal kodunda, bu şemayı alır bir servis var. $ RouteProvider bize denetleyicileri için bunu sağlar:
app.config(function($routeProvider) {
$routeProvider.
when('/', {
controller: 'SomeCtrl',
resolve: {
schema: 'schema'
},
...
});
});
ve bu beni böyle SomeCtrl tanımlamanızı sağlar:
services.factory('SomeService', function(schema) {
// schema is a promise
schema.then(function(schema) {
...
});
});
mi:
controllers.controller('SomeCtrl', function($scope, schema) {
// schema is an object
...
});
Fakat hizmetler için
, yapmam gereken Bunu yapabileceğim herhangi bir yol var mı?
Hayır için
Örnek Kod, işte bu en azından şimdilik, nasıl çalıştığını sadece bu. – aet
Açısal yöneltici, denetleyicinin başlatılmasından önce çözülecek/reddedecek olan "çözme" içindeki değerleri bekler. Daha sonra kontrolöre enjekte etmek için yerel değerleri kullanır (açısal enjektör lokalleri tercih eder). TL; DR: İki farklı şema ile çalışıyorsunuz. –