如何处理Angular中的JSON响应

时间:2014-07-07 16:35:40

标签: javascript json angularjs

我有以下控制器:

function EntryCtrl($scope, Restangular){
 console.log("*** EntryCtrl");
 $scope.roles= Restangular.all("roles").getList();
 console.log("*** EntryCtrl: " +  JSON.stringify($scope.roles));
}

控制台输出是:

*** EntryCtrl: {"restangularCollection":true} 

当我使用休息浏览器插件进行相同的休息呼叫时,我得到:

[
 {
     "name": "dev"
 }
]

我无法弄清楚如何让Angular像其他浏览器插件一样处理响应。 我的最终目标是在Angular中获得角色名称“dev”。 在Angular页面上,我想在使用角色名称的链接上使用“ng-show”,如下所示:

<a href="" ng-show="roles.contains('')>Foo</a>

2 个答案:

答案 0 :(得分:0)

尝试

$scope.roles= Restangular.all("roles").getList().$object;
来自doc

  

获取/帐户   默认返回一个空数组。从服务器返回一个值   该数组填充了这些值。所以你可以在模板中使用它

$scope.accounts = Restangular.all('accounts').getList().$object;

答案 1 :(得分:0)

根据文件:

  

Restangular使用promises。而不是像$ resource

这样对象的“魔术”填充

因此,要从服务器获取响应,您必须使用.then回调,如下所示:

Restangular.all("roles").getList().then(function(response){
    $scope.roles = response;
});

在你的模板中:

<li ng-repeat="role in roles">{{role.name}}</li>