Próbuję zrozumieć pojęcie fabryki i serwisu w Angular. Mam następujący kod pod kontrolką:
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);
};
Ten kod działa poprawnie. Ale kiedy przenoszę usługę $ http do fabryki, nie mogę zwrócić danych z powrotem do kontrolera.
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);
};
});
Czy istnieje zaletą korzystania z fabryki, ponieważ $ http działa nawet w kontrolerze
Dzięki Brian. Teraz ma sens. Otrzymuję komunikat "missing missing error error after property list". Błąd występuje po zamknięciu, dodając ścisłą parantezę dla powrotu w fabryce. –
Oki naprawił część parantyczną. Teraz kod jest 'studentApp.factory ('studentSession', function ($ http) {return { getSessions: function() {return $ http.post ('/ usługi', { typu: 'getSource', ID: 'TP001' }); } } }); "Teraz otrzymałem komunikat o błędzie" Błąd b nie jest funkcją ". Nie mam żadnej funkcji o nazwie b. Wszelkie sugestie na temat tego, co powoduje ten błąd? –
Dzięki. Brakowało mi tego klamry. Jeśli chodzi o "b nie jest funkcją", czy używasz jakiegoś rodzaju minifikacji kodu lub uciążliwości? –