angular:有承诺的集中资源工厂
angular: centralised resource factory with promises
假设我有一个资源,如下所示:
angular.module('productsModule').factory('productFactory', function($resource) {
return $resource('/products/:id',{},
{'query': {method: 'GET', isArray: false }});
});
现在我可以在这样的控制器中使用这个:
productFactory.query().$promise.then(function(products) {
// success
console.log(products);
$scope.products = products;
});
然而,我想把这个功能转移到工厂,这样我就可以在任何控制器中做到这一点,它可以在保持承诺的同时为我提供产品列表:
$scope.products = productFactory.products
这样我就可以拥有一个集中的可重复使用的资源。我如何在Angular中实现这一点?
实际上可以用ngResource来实现这一点,而本机承诺不再打开,您可以简单地执行:
$scope.products = productFactory.query();
这是因为在ngResource上执行.query
将返回一个空数组,当请求返回到客户端并运行摘要时,该数组将自动流行。
angular.module('productsModule').factory('productFactory', function($resource) {
var res = $resource('/products/:id',{},
{'query': {method: 'GET', isArray: false }});
var fn = function ($scope, prop) {
res.query().$promise.then(function (products) {
$scope[prop] = products;
}
}
return fn;
});
在控制器中:
productFactory($scope, 'products');
相关文章:
- 在jstree中,如何将指定的节点集中到大型树上
- 否'访问控制允许来源'标头存在于IISNOde中请求的资源(AngularJS+NodeJs)上
- WebResources嵌入式资源和Javascript如何在另一个嵌入式资源中使用它们
- 如何在构建node-webkit应用程序后获取外部资源
- ADF:有条件地加载javascript资源
- Javascript嵌入式图像资源
- 内容安全策略:页面's设置阻止加载资源
- Don'不允许将焦点集中在自动完成的选择上
- 用于查询错误转换的角度资源返回列表
- 未能在Laravel中加载资源
- LINK rel=子资源用于什么
- 如何在JS文件中获取资源(.resx)字符串
- 我可以在Nodewebkit中保护javascript以外的资源吗
- Nodejs服务器:加载资源失败:服务器的响应状态为404(未找到)
- 从重复的javascript数组结果集中只获取一行
- js文件未加载js控制台say's”;不允许加载本地资源”;
- "资源不足错误“;当从Chrome控制台重复发出ajax请求时
- UIWebview赢得't通过基本身份验证加载动态加载的资源(通过jQuery mobile)
- 如何从合并的结果集中提取数组
- angular:有承诺的集中资源工厂