Перечислите все элементы из списка, созданного с помощью $ http.get в AngularJS - PullRequest
0 голосов
/ 04 июля 2018

Я новичок в программировании на AngularJS, и я написал некоторый код, я не получаю никаких ошибок, в консоли это дает мне то, что я хочу, но его не показывают на веб-странице. Я пытаюсь сделать 2 HTTP-вызова, получить и опубликовать, получить показывает мне все элементы, которые у меня есть в списке, и опубликовать добавить элемент в этом списке. Они работают, но когда я пытаюсь перечислить все элементы, это не показывает мне ничего :(

Вот мой код:

dataContext.js

(function () {
 'use strict';
  angular.module('app').service('dataContext', ['httpService', function (httpService) {
    var service = {
        getAllUsers: getAllUsers,
        addUser: addUser,
        saveMessage: saveMessage
    };

    function getAllUsers() {
        return httpService.get("api/users");
    }

    function addUser(name) {
        return httpService.post("api/users", { name: name });
    }

dashboard.js

(function () {
    'use strict';
     angular.module('app').controller("dashboardController", ['dataContext', function (dataContext) {
    var vm = this;

    vm.getUser = function () {
        dataContext.getAllUsers().then(
            function (response) {
                alert(response.data[0].Name);
            },
            function (error) {
                console.log(error);
            }
        );
    };

    vm.postUser = function () {
        dataContext.addUser(vm.username).then(
            function (response) {
                alert("User, " + vm.username + " was added!");
            },
            function (error) {
                console.log(error);
            }
        ); 
    };
})();

httpService.js

(function () {
'use strict';
angular.module('app').service('httpService', ['$http', '$q', 'backendConfig', function ($http, $q, backendConfig) {
    var service = {
        get: get,
        post: post
    };

    function get(path) {
        var deferred = $q.defer();

        $http.get(backendConfig.url + path).then(
            function (response) {
                deferred.resolve(response);
            },

            function (err, status) {
                deferred.reject(err);
            }
        );
        return deferred.promise;
    }

    function post(path, data) {
        var deferred = $q.defer();
        $http.post(backendConfig.url + path, data).then(
            function (response) {
                deferred.resolve(response);
            },

            function (err, status) {
                deferred.reject(err);
            }
        );
        return deferred.promise;
    }

    return service;
}]);})();

и мой dashboard.html

<div ng-controller="dashboardController as vm">
<button ng-click="vm.getUser()">Get</button>
<button ng-click="vm.postUser()">Post</button>
<input ng-model="vm.username" />
<ul>
    <li ng-repeat="obj in vm.users">{{obj.Name}}</li>
</ul>

Имя списка - пользователи, у меня есть класс Users со строкой Name, все должно быть точно, но я не знаю, почему это не работает. Любая помощь будет потрясающей

Спасибо

1 Ответ

0 голосов
/ 04 июля 2018

Заменить

alert(response.data[0].Name);

с

vm.users = response.data;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...