Javascript 如何以角度获取JSON数组中的每个对象

Javascript 如何以角度获取JSON数组中的每个对象,javascript,json,angularjs,Javascript,Json,Angularjs,我对AngularJS和JS都是新手。但我认为在学校里从Java学习是相当简单的 我的第一次服务包含以下内容: app.factory('User', function($http) { var user = { username : null, company : null, address : null, city: null, country: null }; $http.get('/webservice/user').su

我对AngularJS和JS都是新手。但我认为在学校里从Java学习是相当简单的

我的第一次服务包含以下内容:

app.factory('User', function($http) {

  var user = {
     username : null,
     company : null,
     address : null,
     city: null,
     country: null
  };

  $http.get('/webservice/user').success(function(data){

     user.username = data.username;
     user.company = data.company;
     user.address = data.address;
     user.city =  data.city;
     user.country = data.country;

  })

  return user;

})
我从UserCtrl访问了它:

app.controller('UserCtrl', ['$scope', 'User', function ($scope, User){
  $scope.user = User; 
}]);
在index.html中,我简单地调用了:

{{user.username}} {{user.company}} ... 
等等

现在我有了一个对象数组,我使用这个方法:

app.factory('Cards', function($http) {

var cards = [{id:null, name: null, info: null}];

$http.get('/webservice/cards').success(function(data){

  for(var i=0;i<data.length;i++){
     cards[i] = data[i];
  }

})
  return cards;
})
我用一个

<li ng-repeat="card in cards">
{{card.id}} {{card.info}}</li>

我的问题是,我真的需要在$http.get方法中有一个for循环吗?

不需要这个循环,angular js ng repeat本身作为foreach循环工作

// Js Code
app.factory('Cards', function($http) {
    $scope.cards = [];
       $http.get('/webservice/cards').success(function(data){
            $scope.cards = data;
       }
   return $scope.cards;
   })
//html
<li ng-repeat="card in cards">
{{card.id}} {{card.info}}</li>

我用ngResource解决了这个问题

在使用RESTful API时,这是一种方法。我没有使用$http.get方法,而是使用

app.factory('CardService', ['$resource', function($resource) {

   return $resource('/webservice/cards',{});

}]);
不建议在服务中使用$scope,这样您就失去了服务的功能

在控制器中,我随后使用:

app.controller("CardCtrl", ['$scope', 'CardService', function($scope, CardService){

$scope.cards = CardService.query();

})

使用其他方式会导致双向绑定中出现冲突。首先它启动控制器,然后检查服务,然后控制器,然后再次检查服务。在处理对象时,这非常有效。使用数组时,这种方法更好。

我的问题是,我真的需要在$http.get方法中使用for循环吗?回答:否,分配卡片=数据;如何以及从何处获取数据。在发送数据之前,您可以将其格式化为array assoc.array,甚至更好。让我知道我通过定义{{card.id}{{{card.info}}来访问SearchCtrl服务是否应该访问范围?服务应该注入到哪里?没有控制器?
app.controller("CardCtrl", ['$scope', 'CardService', function($scope, CardService){

$scope.cards = CardService.query();

})