2013-08-05 126 views
-1

数据我是新与angulrJs,为什么我不能读取远程

我haved试图读取与$资源

像(服务代码)

angular.module('elnApp') 
.factory('programService', function ($resource, baseUrl) { 
    return $resource(baseUrl + '/rest/program/:id', {}, { 
    query: {method: 'GET', isArray: true}, 
    get: {method: 'GET'}, 
    remove: {method: 'DELETE'}, 
    edit: {method: 'PUT'}, 
    add: {method: 'POST'} 
    }); 
}); 

(控制器数据代码)

angular.module('elnApp') 
    .controller('GridCtrl', function ($scope, $http, $routeParams, $location, 
    programService) { 
    $scope.filterOptions = { 
     filterText: "", 
     useExternalFilter: true 
    }; 
    $scope.totalServerItems = 0; 
    $scope.pagingOptions = { 
     pageSizes: [5, 10, 20], 
     pageSize: 5, 
     currentPage: 1 
    }; 
    $scope.setPagingData = function(data, page, pageSize){ 
     var pagedData = data.slice((page - 1) * pageSize, page * pageSize);; 
     $scope.myData = pagedData; 
     $scope.totalServerItems = data.length; 
     if (!$scope.$$phase) { 
      $scope.$apply(); 
     } 
    }; 
    $scope.getPagedDataAsync = function (pageSize, page, searchText) { 
    setTimeout(function() { 
     var data; 
     if ($routeParams.id) { 
      data = {'program': programService.get({id: $routeParams.id})}; 
     } 
     if ($location.path() === '/grid') { 
      data = programService.query(); 
     } 
     $scope.setPagingData(data,page,pageSize); 
    }, 100); 

}; 

我想要得到的数据并显示,

但我不能得到的数据,我很困惑

请帮助

+0

请勿使用'setTimeout'。使用'$ timeout' http://docs.angularjs.org/api/ng.$timeout – EpokK

回答

0

而不是做这个

data = {'program': programService.get({id: $routeParams.id})}; 

你需要使用一个回调函数来得到这样

数据
programService.get({ 
    id: $routeParams.id 
}, function (result) { 
    data = { 
     'program': result 
    }; 
}); 

您还需要更改data = programService.query();以使用回调函数。希望能帮助到你。

+0

两者有什么不同? – user2473037

相关问题