-1

私はangulrJsで初めてです、

$resource でデータを読み込もうとしました

そのような(サービスコード)

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);

};

データを取得して表示したいのですが、

しかし、私はデータを取得できません、私はとても混乱しています

助けてください

4

1 に答える 1

0

これを行う代わりに

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

このようなデータを取得するには、コールバック関数を使用する必要があります

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

data = programService.query();また、コールバック関数を使用するように変更する必要があります。それが役に立てば幸い。

于 2013-08-05T13:42:21.883 に答える