从angularjs中的集合中获取单个项
我是AngularJS新手,需要使用RESTAPI。我可以使用两种不同的方式从服务器成功加载项目集合,但无法通过其id从此列表(填充后)中获取单个项目。我不想再次从服务器获取该项目 当我尝试使用从angularjs中的集合中获取单个项,angularjs,restangular,Angularjs,Restangular,我是AngularJS新手,需要使用RESTAPI。我可以使用两种不同的方式从服务器成功加载项目集合,但无法通过其id从此列表(填充后)中获取单个项目。我不想再次从服务器获取该项目 当我尝试使用angularjs rails资源时,我可以使用Project.query()获取项目列表,并将其存储在$rootScope.projects中。然而,我现在想知道如何通过id从列表中获取一个项目(实际上它不是一个数组,而是一个承诺) 我还使用$rootScope.projects=restangular
angularjs rails资源时
,我可以使用Project.query()
获取项目列表,并将其存储在$rootScope.projects
中。然而,我现在想知道如何通过id从列表中获取一个项目(实际上它不是一个数组,而是一个承诺)
我还使用
$rootScope.projects=restangular.all(“projects”).getList()和project=$rootScope.projects.get(id)
尝试了restangular
。但这也失败了,因为它似乎返回一个集合而不是一个项目 对于angularjs rails资源
您应该能够只使用get(id)
。它将始终返回一个承诺,如果您在模板中使用它,这是很好的,因为模板理解承诺
如果你不想要承诺,你可以使用然后
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);
要返回单个项目,请使用:
$scope.project = Project.get(id: some_id);
但这会对服务器进行另一次调用。我想从$rootScope.projects中存储的预加载列表中获取该项。我误解了,也许您可以使用forEach循环浏览它们。。。为你的工厂添加一个方法。对不起,我真的不知道怎么做。你能给我一个完整的例子,增强angularjs rails资源网站的基本例子吗?看看“添加自定义方法”下面的内容。但我真的认为你应该重新考虑你的方法。如果您只依赖最初获得的列表,则数据过时的风险更高。。。。为什么不做另一个请求呢?这不是休息的重点吗?