2016-06-28 142 views
1

我在表中显示数据时遇到问题。数据未填充表

我正在使用customservice从json文件中获取数据,然后将该数据插入到对象的$ rootScope中。

但是当我运行的观点,谈到空白,没有errors.In的观点,我使用下面的代码行的视图中的重复的对象“书”的阵列

请引导我。

controller.js

Controllers.controller('BookListCtrl_Student', ['$scope','$rootScope','$http','$location','BookData', 
function ($scope, $rootScope, $http, $location, BookData) { 
    $rootScope.books=[]; 
    $rootScope.books.push(BookData.getData()); 
    $scope.bookLists = ['All Books', 'Available Books']; 
    $scope.selection = $scope.bookLists[0]; 

    $scope.backToLogin = function() { 
     $location.path("/main"); 
    } 
}  
]); 

customservice.js

Controllers.factory('BookData',['$http',function(http){ 
return { 
    getData: function() { 
     return http.get('data/books.json').then(function(result){    
      return result.data;    
      }); 
    } 
}; 
} 
]); 

回答

0

的问题是,当你做$ rootScope.books.push(BookData.getData())它要求你的getData (),但它从不执行承诺。要解决它,你需要处理控制器内的诺言,然后分配数据。

customservice.js

return http.get('data/books.json'); 

controller.js

BookData.getData().then(function(resp){ 
    $rootScope.books.push(resp.data); 
}) 

继承人有一个简单的例子一个plunker - https://plnkr.co/edit/ivdLd9wilmWW8oUnrMsh?p=preview