Angularjs 更新ng repeat after函数

Angularjs 更新ng repeat after函数,angularjs,Angularjs,我已经构建了一段angular代码,但是在调用函数之后应该会显示ng repeat。我检查了http.get函数是否实际返回数据,这是真的,它返回的列表格式如下: [{id:"183m-WQHGaNHP-uVhuvJONyVKLAG", title:"a title"},{id:"183m-WQHGaNHP-uVhuvJONyVKLAG", title:"a title"}] HTML: 您不需要transformResponse函数,只需将其完全删除即可 另外,我认为,当使用语法控制器作为某

我已经构建了一段angular代码,但是在调用函数之后应该会显示ng repeat。我检查了http.get函数是否实际返回数据,这是真的,它返回的列表格式如下:

[{id:"183m-WQHGaNHP-uVhuvJONyVKLAG", title:"a title"},{id:"183m-WQHGaNHP-uVhuvJONyVKLAG", title:"a title"}]
HTML:


您不需要
transformResponse
函数,只需将其完全删除即可

另外,我认为,当使用语法
控制器作为某个变量时,应该使用
this
而不是
$scope
将内容分配给作用域

因此,在您的情况下,更改
$scope.documents=driveLoad.files
this.documents=driveLoad.files

除此之外,据我所知,您的代码是正确的

正确代码:


您确定您为该列表声明的格式吗?它不是有效的Json。(可能需要一些
{}
)我确信它会返回一个列表。我尝试使用var files={};但后来它又告诉我,复制函数不起作用,因为数据和文件所在的对象不相同。它不是因为缺少
{}
而无效,而是因为字符串周围缺少大量
”(即,它应该是
title:“a title”
)而无效。我从http响应复制了列表,所以有点乱。我编辑了正确的回答
<body ng-controller="driveController as drive">
<div ng-repeat="f in drive.documents">
  <pre>{{f | json}}
  </pre>
</div>
</body>
(function() {
  var app = angular.module('app', []);

  app.controller('driveController', ['$scope', 'driveLoad', function($scope, driveLoad) {

    $scope.documents = driveLoad.files;
    driveLoad.getFiles("root"); 

  }]);

  app.service('driveLoad', ['$http', function($http, id) {
    var files = [];
    var jsonTransform = function (data, headers) {
      return angular.fromJson(data);
    };
    return {
        getFiles: function (id) {
          $http.get('/svc', {
            transformResponse:jsonTransform,
            params:{'file_id':id}
          }).success(function(data, status, headers, config) {
            angular.copy(data, files);
          });
        },
        files: files
    }
  }]);


})();
(function() {
  var app = angular.module('app', []);

  app.controller('driveController', ['$scope', 'driveLoad', function($scope, driveLoad) {

    this.documents = driveLoad.files;
    driveLoad.getFiles("root"); 

  }]);

  app.service('driveLoad', ['$http', function($http, id) {
    var files = [];
    return {
        getFiles: function (id) {
          $http.get('/svc', {
            params:{'file_id':id}
          }).success(function(data, status, headers, config) {
            angular.copy(data, files);
          });
        },
        files: files
    }
  }]);


})();