У меня есть следующий завод:Использование завода и контроллера для возврата данных
app.factory('clientFactory', function ($http) {
var factory = {};
factory.getClients = function() {
var url = "/tracker/api/client";
$http.get(url).then(function (response) {
return response.data;
});
};
factory.getClient = function (id) {
// TODO
};
factory.insertClient = function (firstName, lastName, city) {
// TODO
};
factory.deleteClient = function (id) {
// TODO
};
return factory;
});
и контроллер:
app.controller('ClientController', function ($scope, clientFactory) {
$scope.clients = [];
init();
function init() {
$scope.clients = clientFactory.getClients();
}
$scope.insertCustomer = function() {
// TODO
};
$scope.deleteCustomer = function (id) {
// TODO
};
});
В мой контроллер, «клиенты» всегда нулевой. Я пробовал несколько других подходов, например, что я вижу here, но я получил сообщение об ошибке, что «успех не может быть вызван в null», и если я пропущу эту ошибку, моя функция успеха никогда не вызывается.
Что мне здесь не хватает?
Отлично! Большое спасибо ... из мира jQuery, все было либо асинхронно, либо нет, и там была какая-то магия (по крайней мере для меня). Обещание вещей для меня нова. – Nicros
Да, обещает немного обернуть голову, но как только вы поймете их, вы полюбите их. Это огромная часть Angular, поэтому вы будете видеть их гораздо чаще! – Polaris878