Как получить результаты с angular.js $http?

У меня проблемы с получением результатов от моего сервера API с angularjs.

Это мой код:

home.html (просмотр)

<div class="jumbotron text-center">
        <h1>Home Page</h1>

        <p>{{ message }}</p>

        <a href="#" ng-click="getOrders()">Orders!</a>
</div>
<ul>
    <li ng-repeat="order in orders">{{order}}</li>
</ul>

main.js (контроллер)

app.controller('mainController', function($scope, $http) {
    $scope.message = 'Everyone come and see how good I look!';
    $scope.orders = [];
    $scope.getOrders = function(){
        $http.get('http://apidemo.dev/api/orders').success(function(response){
            console.log("My data: " + response);
            $scope.orders = response;
        });
    }
});

Когда я нажимаю кнопку, я вижу результаты в консоли, но не в списке.

Если использовать этот код в контроллере, он работает, когда он загружается, и когда я нажимаю кнопку:

app.controller('mainController', function($scope, $http) {
    $scope.message = 'Everyone come and see how good I look!';
    $http.get('http://apidemo.dev/api/orders').success(function(response){
        console.log("My data: " + response);
        $scope.orders = response;
    });
    $scope.getOrders = function(){
        $http.get('http://apidemo.dev/api/orders').success(function(response){
            console.log("My data: " + response);
            $scope.orders = response;
        });
    }
});

В чем проблема?

Спасибо!

2 ответа

Решение

Похоже, вы использовали ngRoute и у тебя есть href="#" в вашем якоре, который приводит вас к перенаправлению на пустую страницу, сохранить href="" поможет вам в css показать pointer: cursor; при этом

кнопка

<a href="" ng-click="getOrders()">Orders!</a>

Спасибо всем за вашу помощь.

Проблема была ссылка в представлении...

<a href="#" ng-click="getOrders()">Orders!</a>

было бы:

<a ng-click="getOrders()">Orders!</a>
Другие вопросы по тегам