我有一个返回数组的后端REST服务。我正在尝试使用<select>
在我的ng-options
之一中显示此REST服务返回的值。但是我在列表中得到[object Object]
。
后端Java Rest服务
@Path("/positions")
public class PositionRestService {
ManagerService managerService = new ManagerService();
@GET
@Produces(MediaType.APPLICATION_JSON)
public List<String> getVacantPositions(@HeaderParam("iv-user") String uid) throws Exception{
Manager manager = managerService.getManager(uid);
LdapSearch ldapProfile = new LdapSearch();
List<String> vacantPositions = new ArrayList<String>();
vacantPositions = ldapProfile.getChildPositions(manager.getPositionID());
return vacantPositions;
}
}
AngularJS代码 - Service.js
services.factory('PositionsFactory', function ($resource) {
return $resource('/userfeed/rest/positions', {}, {
query: { method: 'GET', isArray: true}
})
});
AngularJS - Controller.js
app.controller('PositionCtrl', ['$scope', 'PositionsFactory', function ($scope, PositionsFactory) {
//$scope.positions = PositionsFactory.query();
PositionsFactory.query({}, function (positionsFactory) {
$scope.positions = positionsFactory;
})
}]);
我使用控制器的HTML代码
<select ng-model="myPosition" ng-options="position as position for position in positions"> </select>
结果 我在选项列表中看到了以下选项。
[object Object]
当我使用浏览器访问REST服务时,我得到以下数组结果,这是我在上面的选项框中所期望的。
["CU13-00-00-004-","CU13-00-00-005-","CU13-00-00-006-"]
如何使用CU13-00-00-004-, CU13-00-00-005- and CU13-00-00-006-
在我的选项中获取值ng-options
。
在使用
{{positions|json}}时,我得到以下结果:
[
{ “0”:“C”, “1”:“U”, “2”:“1”, “3”:“3”, “4”:“ - ”, “5”:“0”, “6”:“0”, “7”:“ - ”, “8”:“0”, “9”:“0”, “10”:“ - ”, “11”:“0”, “12”:“0”, “13”:“4”, “14”:“ - ” }, { “0”:“C”, “1”:“U”, “2”:“1”, “3”:“3”, “4”:“ - ”, “5”:“0”, “6”:“0”, “7”:“ - ”, “8”:“0”, “9”:“0”, “10”:“ - ”, “11”:“0”, “12”:“0”, “13”:“5”, “14”:“ - ” }, { “0”:“C”, “1”:“U”, “2”:“1”, “3”:“3”, “4”:“ - ”, “5”:“0”, “6”:“0”, “7”:“ - ”, “8”:“0”, “9”:“0”, “10”:“ - ”, “11”:“0”, “12”:“0”, “13”:“6”, “14”:“ - ” } ]
看起来它已将数组转换为JSON对象并为earch字符创建了占位符。 with ng-options将它们显示为[object Object]。
请帮忙。任何建议都会非常感激。