美元的资源;如何封装API方法
$resource; how to encapsulate API methods
我有以下angularjs服务,它暴露了一些方法来执行REST请求。
managerApp.factory('parameterService',
function($resource){
return {
findAll: $resource('rest/globalparam/list'),
getByName: $resource('rest/globalparam/getByName/?name=:name'),
update: $resource('rest/globalparam')
};
}
);
使用方法如下:
$scope.parameters = parameterService.findAll.query();
$scope.selectedParameter = parameterService.getByName.get({name: $routeParams.id});
虽然这工作得很好,但我对语法和我需要知道控制器中的$resource API (query(), get())这一事实都不太满意。我想在控制器中看到的是:
$scope.parameters = parameterService.findAll();
$scope.selectedParameter = parameterService.getByName($routeParams.id);
这将使单元测试(模拟服务)更加容易。
这可能是一个JavaScript问题,而不是AngularJS问题。
这是可能的吗?
你可以做的是从工厂返回函数,而不是一个承诺/资源对象
managerApp.factory('parameterService',['$resource',
function($resource){
var findAll = function(){return $resource('rest/globalparam/list').query(); }
return {
findAll : findAll
};
}]
);
相关文章:
- 如何更改bigquery API中的计费层选项
- Amazon S3 REST API大小不正确
- 在AngularJS应用程序中使用封装指令和路由的推荐方式是什么
- 客户端服务器REST API captcha实现
- 使用Facebook live API创建实时视频对象时的隐私设置
- 谷歌放置API:按国家或餐馆名称搜索餐馆
- MeteorJS:在带有回调的vzaar api上正确使用wrapAsync
- 是否可以控制获取哪些Google地图脚本(JavaScript API)
- API密钥使用和检查示例
- 谷歌地图API v3不适用于移动浏览器或PhoneGap
- 任何方式使AJAX调用Gmail API,而无需通过JS库
- 谷歌地图JS API+JSON-多个标记没有显示
- 单击超链接时,如何使用Google Maps API v3缩放地图
- 如何在 API 调用后和 if 语句中启用提交按钮
- 与运行长作业(javascript,node.js)的第三方API同步的最佳实践
- 搜索api在mac上显示对话框
- Backbone.js restful json API design
- 将 chrome API 操作封装到函数中
- 美元的资源;如何封装API方法
- 封装的API.对外部javascript函数的调用不工作