2015-01-12 2 views
0

Любые идеи, что я делаю неправильно с этим ng-repeat? Ничего не отображается в таблице, где используется ng-repeat.Как использовать ng-repeat в Angular?

HTML:

<div ng-app="myApp"> 
<div ng-controller="conn1"> 
    <button ng-click="fetch()">fetch</button><br/> 
    user name: {{user.name}}<br/> 
    <p> 
    <table> 
     <tr><td>name</td></tr> 
     <tr ng-repeat="auser in everyuser"> 
     <td>{{auser.name}}</td> 
     </tr> 
    </table> 
    </p> 
    </div> 
    </div> 

угловая:

var myApp = angular.module("myApp", []); 

var conn1 = myApp.controller("conn1", function($scope, $http){ 

    var onFetchDone = function(response){ 
    $scope.user = response.data; 
    $http.get($scope.user.repos_url) 
     .then(onGetAllDone); 
    }; 

    $scope.onGetAllDone = function(response){ 
    $scope.everyuser = response.data; 
    }; 

    $scope.fetch = function(response) { 
    $http.get("https://api.github.com/users/gabrielecirulli") 
     .then(onFetchDone); 
    }; 

}); 

Пример: http://jsfiddle.net/stq62jxL/1/

ответ

1

onGetAllDone ваших функций устанавливается как свойство объекта области видимости, обещание цепочки не будет оценивать ссылку на функцию автоматически из сферы.

Вместо просто определить его как:

function onGetAllDone(response){ 
    $scope.everyuser = response.data; 
    }; 

Или установить его как:

.then($scope.onGetAllDone) 

Demo

+0

Спасибо! Как примечание, знаете ли вы какие-либо другие сайты, которые возвратят данные таким образом ... что я могу использовать в качестве другого теста? – 4thSpace

1

onGetAllDone является определение области видимости на объекте. Следовательно, вам нужно добавить к ней префикс $scope

$http.get($scope.user.repos_url).then($scope.onGetAllDone);

Смежные вопросы