我想了解Angular中工廠和服務的概念。我在控制器下面有以下代碼
init();
function init(){
$http.post('/services', {
type : 'getSource',
ID : 'TP001'
}).
success(function(data, status) {
updateData(data);
}).
error(function(data, status) {
});
console.log(contentVariable);
};
function updateData(data){
console.log(data);
};
此代碼工作正常。但是當我將$ http服務移入工廠時,我無法將數據返回給控制器。
studentApp.factory('studentSessionFactory', function($http){
var factory = {};
factory.getSessions = function(){
$http.post('/services', {
type : 'getSource',
ID : 'TP001'
}).
success(function(data, status) {
return data;
}).
error(function(data, status) {
});
};
return factory;
});
studentApp.controller('studentMenu',function($scope, studentSessionFactory){
$scope.variableName = [];
init();
function init(){
$scope.variableName = studentSessionFactory.getSessions();
console.log($scope.variableName);
};
});
是否有任何優勢,使用的工廠,因爲$ HTTP的作品,即使在控制器
謝謝Brian。現在有道理。在屬性列表錯誤後,我收到了一個'missing}錯誤。關閉添加一個關於工廠返回的參數後,錯誤仍然存在。 – 2013-04-26 02:54:54
Oki修復了patrolhesis部分。現在代碼是'studentApp.factory'('studentSession',function($ http){ return { getSessions:function(){ return $ http.post('/ services',{ type:'getSource', ID:'TP001' }); } } });'現在有一個錯誤,說明錯誤b不是函數。我沒有任何稱爲b的功能。任何有關觸發此錯誤的建議? – 2013-04-26 04:17:47
謝謝。我錯過了那個大括號。至於「b不是函數」,你是在使用某種代碼縮小或uglification? – 2013-04-26 10:29:40