Sto cercando di capire il concetto di fabbrica e servizio in Angular. Ho il seguente codice sotto il controller
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);
};
Questo codice funziona correttamente. Ma quando sposto il servizio $ http in fabbrica, non sono in grado di restituire i dati al controller.
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);
};
});
non v'è alcun vantaggio di utilizzare in fabbrica, dal momento che $ http funziona anche sotto controllo
Grazie Brian. Ha senso ora. Ottengo un errore 'mancante} errore dopo l'elenco delle proprietà'. L'errore persiste dopo la chiusura, aggiungendo una parente stretta per il ritorno in fabbrica. –
Oki ha riparato la parte della parastesi. Ora il codice è 'studentApp.factory ('studentSession', function ($ http) { return { getSessions: function() { return $ http.post ('/ services', { type: 'getSource', ID: 'TP001' }); } } }); 'Ora viene visualizzato un errore che indica che" Errore b non è una funzione ". Non ho alcuna funzione chiamata b. Qualche suggerimento su cosa fa scattare questo errore? –
Grazie. Ho perso quella coppia. Per quanto riguarda "b non è una funzione", stai usando una sorta di minification o ugificazione del codice? –