Как передать данные $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;
    });

})
Другие вопросы по тегам