Результат контроллера Angular не определен после вызова веб-API с заводским отдыхом. Я видел много сообщений об этом, но ни один из них не решил мою проблему. У меня есть контроллер, который делает спокойный вызов веб-api2. Используя fiddler, я вижу сделанный вызов и ответ 200, но я никогда не могу получить результаты, и я знаю, что получение осуществляется через асинхронность. Ниже находится завод и контроллер. Я также пытался явно отправить обратный вызов в фабрику, этот подход не приводит даже к результату неопределенного объекта, просто не работает. Я действительно здесь в тупике, и я новичок в Angularjs, что не так? В настоящее время у меня есть вызов контроллера, подключенный к кнопке для явного тестирования.
**FACTORY NO EXPLICIT CALL-BACK**
casenoteApp.factory('MyFactory', function ($http) {
var factory = {};
var urlBase = 'http://xxxxxx/api/Client';
factory.getClients = function (userLogin) {
return $http.get(urlBase + '/' + userLogin);
};
return factory;
});
**CONTROLLER NO EXPLICIT CALL-BACK**
casenoteApp.controller('MyController', MyController);
function MyController($scope, MyFactory) {
$scope.addCustomer = function () {
MyFactory.getClients(123456)
.success(function (clients) {
var curCust = clients;
$scope.status = clients.last_name;
})
.error(function (error) {
$scope.status = 'Unable to load client data: ' + error.message;
});
}
}
**FACTORY PASSING IN CALL-BACK**
casenoteApp.factory('MyFactory', function ($http) {
var factory = {};
var urlBase = 'http://xxxxxx/api/Client';
factory.getClients = function (userLogin, callback) {
return $http.get(urlBase + '/' + userLogin).success(callback)
}
return factory;
});
**CONTROLLER PASSING IN CALL-BACK**
casenoteApp.controller('MyController', MyController);
function MyController($scope, MyFactory) {
$scope.addCustomer = function ()
MyFactory.getClients(123456, function(clients) {
var curCust = clients[0];
$scope.status = clients.last_name;
})
}
}