Как передать данные $http из службы в контроллер в AngularJS

AngularJS не работает, когда я передаю контроллер в представление

У меня есть проблема, и я не могу ее решить. В моем простом приложении (очень простом) у меня есть служба, которая предоставляет информацию о пользователях. В angular у меня есть mvc, который пытается связать информацию с представлением.

Проблема: когда я передаю контроллер в представление, в директиве маршрута angular перестает работать в представлении. Я использую простой тест {{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");
    }});

person Guido Caffa    schedule 04.08.2018    source источник
comment
какую ошибку вы видите?   -  person alphapilgrim    schedule 05.08.2018


Ответы (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;
    });

})
person georgeawg    schedule 04.08.2018