Мне нужно получить некоторую информацию (схему) с сервера до того, как я настрою кучу сервисов, которые зависят от этой информации.
Мой сервер предоставляет схему, которая определяет различные свойства модели. В моем коде angular у меня есть служба, которая получает эту схему:
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;
});
Я хотел бы добавить объект схемы, а не обещание, в другие службы, которые зависят от схемы. $routeProvider позволяет нам делать это для контроллеров:
app.config(function($routeProvider) {
$routeProvider.
when('/', {
controller: 'SomeCtrl',
resolve: {
schema: 'schema'
},
...
});
});
и это позволяет мне определить SomeCtrl следующим образом:
controllers.controller('SomeCtrl', function($scope, schema) {
// schema is an object
...
});
Но для сервисов я должен делать:
services.factory('SomeService', function(schema) {
// schema is a promise
schema.then(function(schema) {
...
});
});
Можно ли мне это сделать?