我目前正在Angular的后端网站上工作,只有很少的下划线.js。 对于我的后端我使用的是php-framework Laravel 4非常方便。 我面临的问题是:
当我用角度查询网址时,响应很好而且干净,所以我可以重复没有问题。但是当我试图用下划线提取响应的第一个元素时,它给了我:undefined。
这是我的控制器代码的摘录:
var Client = $resource('myUrl/that/works/fine/and/returns/well');
var resultat = Client.query();
$scope.clients = resultat ;
$scope.isAnArray = _.isArray(resultat); // it returns true;
如果我现在尝试下面的行$ scope.myFirstElemInArray是未定义的???
$scope.myFirstElemInArray = _.first(resultat ); // expected:the first element.
我真的不明白它有什么问题。这是我的变量resultat的内容:
[{"id":"2","email":"olivier@example.com"},{"id":"3","email":"mezigh@example.com"}]
如果有人可以提供一些帮助,我真的对此感到疯狂 奥利维尔(Fr)
答案 0 :(得分:3)
我相信你需要使用回调。以下是$resource
文档中的内容
重要的是要意识到调用$ resource对象方法 立即返回一个空引用(对象或数组取决于 IsArray的)。一旦数据从服务器返回现有数据 引用填充了实际数据。这是一个有用的技巧 因为通常将资源分配给当时的模型 由视图呈现。拥有一个空对象导致无法渲染, 一旦数据从服务器到达,则填充对象 随着数据和视图自动重新呈现自己显示 新数据。这意味着在大多数情况下,人们永远不必写一个 动作方法的回调函数。
类似
Client.query(function(data) {
$scope.myFirstElemInArray = _.first(data);
});