我正在使用angular并且正在使用$ http.get返回JSON响应,并将其设置为$scope.myObjects
。
当我在html中使用ng-repeat="object in myObjects"
时,它可以工作。
我想知道,有没有办法操纵这些物体?我想创建一个名为myBoolean
的属性,并为myObject
中的每个对象将myBoolean
设置为true
。
尝试通过以下操作在控制器中操作此对象时:$scope.myObjects.something
我得到myObjects is undefined
当我尝试在浏览器中查看JSON响应时,我看到的只是[object Object]。是否有查看JSON响应的工具?
编辑:
这是我的html
<div class="comment" ng-hide="loading" ng-repeat="comment in comments">
<h3>Comment <% comment.id %> <small>by <% comment.author %></h3>
<p><% comment.text %></p>
<div class="col-sm-6">
<p><a href="#" ng-click="deleteComment(comment.id)" class="text-muted">Delete</a></p>
</div>
</div>
这是我的控制器
angular.module('mainCtrl', [])
.controller('mainController', function($scope, $http, Comment) {
$scope.commentData = {};
$scope.loading = true;
Comment.get()
.success(function(data) {
$scope.comments = data;
$scope.loading = false;
});
});
和我的服务
angular.module('commentService', [])
.factory('Comment', function($http) {
return {
// get all the comments
get : function() {
return $http.get('/api/comments');
},
});
最佳答案
这是因为$scope.myObjects
是数组(即[]
),而不是对象(即{}
)。
因此,您将不得不遍历数组并一一访问其中的元素。
angular.forEach($scope.myObjects, function(myObject){
myObject.myBoolean = true;
});
console.log($scope.myObjects);
关于javascript - 以 Angular 操作JSON对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34590896/