我正在使用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/

10-10 22:10