다른 서비스에서 오는 서비스에 대한 약속이 있습니다. 데이터에 직접 액세스하려고합니다. 내 서비스의AngularJS 다른 서비스에서 약속에 액세스하는 방법
이있다 (작은 부분) :
factory('CalculationFactory', function(SizeFromPipe){
var input = {
sizes: function(pipe_id){
var sizesFromPipes = SizeFromPipe.getSizes(pipe_id);
sizesFromPipes.then(function(val){
console.log(val); //Is an object
return val;
});
}
return input;
}).
이 내 "DataService에"입니다 :
:factory('SizeFromPipe', function($resource, $q){
return {
getSizes: function(pipe_id){
var deffered = $q.defer();
$resource('/api/sizes/fromPipe/:id', {'id':'@id'})
.query({id:pipe_id},
function(sizes){
deffered.resolve(sizes);
},
function(response){
deffered.reject(response);
});
return deffered.promise;
}
};
})
내가 내 컨트롤러에서이 작업을 수행하고 싶습니다
$scope.sizes = CalculationFactory.sizes(pipe_id)
그래도 나는 정의되지 않습니다.
아이디어가 있으십니까?
업데이트 : 데이터 서비스가 추가되었습니다. 나는 컨트롤러에서 이걸로 접근 할 수 있다는 것을 안다. 나는 내 컨트롤러를 깨끗하게 유지하고 싶다. 대신 내 모델에서이 문제를 처리 할 수 있다면 대단 할 것이다.
는 공장'의 마지막 과정 ('CalculationFactory''? –
예. 고정 그것. 들으 – Per
가 확실 CalculationFactory.input.sizes'점이다에서 아무것도 반환했다 (pipe_id)'가 작동하는 것 같아요. 'CalculationFactory.sizes (pipe_id)'여야합니다. –