2016-06-28 167 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