Javascript 如何以角度获取JSON数组中的每个对象
我对AngularJS和JS都是新手。但我认为在学校里从Java学习是相当简单的 我的第一次服务包含以下内容: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
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();
})