从angularjs中的集合中获取单个项目

时间:2013-10-16 20:35:47

标签: angularjs restangular

我是AngularJS的新手,需要使用REST API。我可以使用两种不同的方式从服务器成功加载项目集合,但是我无法通过其id从该列表中获取单个项目(在填充之后)。我不想再从服务器上获取该项目。

当我尝试使用angularjs-rails-resource时,我可以使用Project.query()获取项目列表并将其存储在$rootScope.projects中。但是我现在想知道如何通过它的id从这个列表中获取一个项目(实际上它不是一个数组而是一个承诺)?

我还尝试使用restangular$rootScope.projects = Restangular.all("projects").getList() project = $rootScope.projects.get(id)。但这也失败了,因为它似乎返回了一个集合而不是单个项目......?!

2 个答案:

答案 0 :(得分:0)

对于angularjs-rails-resource,您应该只能使用get(id)。如果您在模板中使用它,它将始终返回一个很好的承诺,因为模板可以理解承诺。

如果您不想要承诺,可以使用then

Project.get(1234).then(function (project) {
    //project is NOT a promise
    $scope.project = project;
});

而不是

//project is a promise, but you're template is cool with that
$scope.project = Project.get(1234); 

答案 1 :(得分:0)

为了返回单项使用:

$scope.project = Project.get(id: some_id);