У меня есть конечная точка фабричного вызова HTTP для получения пользователя:
.factory('me', function($resource, VAS_API_URL, $q) {
return {
getUser: function() {
var deferred = $q.defer();
var url = VAS_API_URL + 'api/me';
$resource(url)
.get(function(user) {
deferred.resolve(user);
}, function(response) {
deferred.reject(response);
});
return deferred.promise;
}
};
})
Я использую этот factory
во многих controllers
, и я успешно привязываю данные к DOM
, но иногда я хочу использовать данные, возвращенные из factory
в моем controller
, например, чтобы сохранить имя пользователя с уведомлением, поэтому мне пришлось сделать следующее :
.controller('createNotificationCtrl', function($scope, VAS_API_URL, me) {
var Burl = VAS_API_URL + 'api/notification';
$scope.profile = me.getUser();
$scope.profile.then(
function(user) {
$scope.owner = user;
$scope.item = {};
$scope.item.message = $scope.message;
$scope.item.owner = $scope.owner.displayName;
},
function(response) {
console.log(response);
}
);
})
Мне пришлось создать $scope.item = {};
в фабричном вызове, чтобы я мог получить displayName
, а затем отправить объект для сохранения уведомления, но что, если я хочу сохранить также еще один файл с другой фабрики. Как это можно было сделать?