使用underscore.js提取数组的第一个元素失败

时间:2013-06-27 11:18:51

标签: angularjs underscore.js

我目前正在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)

1 个答案:

答案 0 :(得分:3)

我相信你需要使用回调。以下是$resource文档中的内容

  

重要的是要意识到调用$ resource对象方法   立即返回一个空引用(对象或数组取决于   IsArray的)。一旦数据从服务器返回现有数据   引用填充了实际数据。这是一个有用的技巧   因为通常将资源分配给当时的模型   由视图呈现。拥有一个空对象导致无法渲染,   一旦数据从服务器到达,则填充对象   随着数据和视图自动重新呈现自己显示   新数据。这意味着在大多数情况下,人们永远不必写一个   动作方法的回调函数。

类似

Client.query(function(data) {
$scope.myFirstElemInArray = _.first(data);
});