Как передать данные $http из службы в контроллер в AngularJS
AngularJS не работает, когда я передаю контроллер на вид
У меня проблема, и я не могу ее устранить. В моем простом приложении (очень простом) у меня есть сервис, который предоставляет информацию о пользователях. В угловом у меня есть MVC, который пытается связать информацию в представлении.
Проблема: когда я передаю контроллер на вид, в директиве маршрута угловые переставают работать в виде. Я использую простой тест {{1+1}}, чтобы проверить, работает ли angular.
контроллер:
App.controller("loginController", function ($scope, usersModel) {
$scope.users = usersModel.getUsers();
})
модель
App.service("usersModel", function () {
this.getUsers = function ($scope) {
$http.get("http://localhost:50765/api/users");
}});
1 ответ
Решение
Служба должна внедрить службу $http и вернуть обещание, которое она возвращает
App.service("usersModel", function ($http) {
this.getUsers = function () {
return $http.get("http://localhost:50765/api/users");
}
});
И извлеките данные из обещания:
App.controller("loginController", function ($scope, usersModel) {
var promise = usersModel.getUsers();
promise.then(function(response) {
$scope.users = response.data;
});
})