对包含 json 的字符串使用 ng-repeat

Using ng-repeat on a string that contain a json

本文关键字:ng-repeat 字符串 包含 json      更新时间:2023-09-26

我有这种情况:我想在包含 Json 行的字符串上使用 ng-repeat 指令。这根绳子来自带球衣的休息服务。当我调用包含此指令的页面时,出现错误。我该如何解决这种情况?谢谢大家。

SyntaxError: Unexpected token {
at Object.parse (native)
at fromJson (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.8/angular.js:1035:14)
at defaults.defaults.transformResponse (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.8/angular.js:6933:18)
at https://ajax.googleapis.com/ajax/libs/angularjs/1.2.8/angular.js:6908:12
at Array.forEach (native)
at forEach (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.8/angular.js:302:11)
at transformData (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.8/angular.js:6907:3)
at transformResponse (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.8/angular.js:7589:17)
at deferred.promise.then.wrappedCallback (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.8/angular.js:10943:81)
at https://ajax.googleapis.com/ajax/libs/angularjs/1.2.8/angular.js:11029:26
}

这是我的代码:

列表.html

<tr ng-repeat="person in persons">
   <td>{{ person.name }}</td>
   <td>{{ person.lastname }}</td>
   <td>{{ person.tasks }}</td>
   <td>{{ person.skills }}</td>
   <td><a ng-click="editUser(person.id)" class="btn btn-small btn-primary">Modifica</a></td>
   <td><a ng-click="deleteUser(person.id)" class="btn btn-small btn-danger">Elimina</a></td>
</tr>

服务.js

services.factory('PersoneFactory', function ($resource) {
return $resource(baseUrl + '/GestRisorse/rest/person/personList', {}, {
    query: { method: 'GET', isArray: false  }, 
   })
});

控制器.js

app.controller('PersonListCtrl', ['$scope', 'PersoneFactory', 'PersonFactory', '$location',
  function ($scope, PersoneFactory, PersonFactory, $location) {
 $scope.persons = PersoneFactory.query();
  }]);

restController.java

@Path("/person")
 public class PersonRestController {
   private PersonDAO personDao = new PersonDAO();
     @GET
     @Path("/personList")
     @Produces("application/json")
     public String getPersonList() {
        return personDao.getAllPerson();
            }
    ...
    }

人道.java

public String getAllPerson(){
        DBCollection collection = connection.getCollection("users");

        StringBuffer s = new StringBuffer();
        DBCursor cursor = collection.find();
        try {
           while(cursor.hasNext()) {
               s.append(cursor.next());
           }
        } finally {
           cursor.close();
        }

        return s.toString();
    }
...
}
感谢在我的

问题下写评论的人,我想说他们我发现了问题,其中 2:

1)我没有正确使用承诺,现在我在控制器中添加这些行

PersoneFactory.query().$promise.then(function(data) { $scope.persons = JSON.parse(data); },  function(errResponse) { console.log("errore"); });

2)我没有正确格式化JSON,因此来自后端的字符串不是有效的JSON。

谢谢大家。