我有以下控制器:
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>
答案 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>