我正在尋找一種方式來改變工廠的回報。 例如,我有一個角度項目,其中包含:一個控制器和一個服務(工廠)。我如何編輯角度的工廠返回數據
控制器爲兩個Object(「item」和「someItem」)。 該服務公開兩種方法(「getIem()」和「getSomeItem()」)。
控制器中的對象從服務接收數據。我想有方法「getItem()」,返回我的json文件中存在的數據作爲一個對象,並讓我的方法「getSomeItem()」返回一個特定的項目相對於方法的參數。 (在項目中設置「someItem」對象是一個解決方案,但我想在「getSomeItem()」方法中做到這一點,也許我誤解了承諾的工作方式,但我認爲我可以編輯在我的工廠方法的返回,是一個不好用工廠的)
的plunker是在這裏:https://plnkr.co/edit/YGNy92ewINRSAILs83PS?p=preview
var controllers = angular.module('controllers',[]);
var services = angular.module('services',[]);
var app = angular.module('app',['controllers','services']);
controllers.controller('mainController',['myFactory',function(myFactory){
var vm = this;
//////////////
vm.item = {};
vm.someItem = {};
activate();
function activate(){
myFactory.getItem().then(function(data){
vm.item = data;
return vm.item;
});
myFactory.getSomeItem(0).then(function(data){
vm.someItem = data;
return vm.someItem;
});
}
}]);
services.factory('myFactory',['$http', function($http){
var getItem = function(){
return $http.get('myData.json')
.success(function(data){return data})
.error(function(data){throw new Error(data + status + headers + config)})
};
var getSomeItem = function(item){
return $http.get('myData.json')
.success(function(data){
//I try to return just a specific object
var oneObject = data.data.objet1[item];
return oneObject})
.error(function(data){throw new Error(data + status + headers + config)})
};
return{
getItem : getItem,
getSomeItem : getSomeItem
}
}]);
'成功'/ '錯誤' 之間的差異的說明 '然後' 是非常有益的!非常感謝Martin! – vince4128
@ vince4128非常歡迎你:) –