【发布时间】:2014-08-10 17:49:21
【问题描述】:
我认为我的 stackoverflow search-fu 今天坏了,因为不可能只有我一个人问过这个问题。 Cripes,我希望不是,因为我真的可以使用一些帮助来解决这个问题。在数据源之间切换是很重要的部分,但“抽象的最佳方式”也是这方面合乎逻辑的下一个问题。
无论如何:我有三打小部件。每个小部件都有三个数据源之一(API-full、API-short、json 文件)。我将有刚从 Intarnet 进入的用户、具有销售提供的临时登录名的用户以及使用自己的 API 密钥登录的用户。
- 没有登录 = 虚拟数据/json
- 临时登录 = 来自删节端点的数据
- API 密钥 = 完整数据集端点
逻辑上,我将有 $scope.access 用于用户访问 + $scope.widget 用于用户单击的小部件。回到旧的功能习惯,似乎我可以在 case break 中使用这两个,并为适当的端点返回一个值。但我似乎无法获得一个变量来执行 $http 调用,如下所示:
$http.get($scope.call).success(function(data) {
$scope.group = data;
});
所以我的问题归结为:
什么是最好的方法(或者我可以)重复使用带有变量的 $http,这样我就可以插入变量,而不必为每个组合做一个单独的 $http?
我应该(或应该)如何抽象这个逻辑并将它从我的控制器中取出?
真正优秀的只是我可以在我的控制器中调用的东西,可能是这样的:
var X = getEndpoint($scope.access, $scope.widget);
var Y = getEndpoint($scope.access, $scope.widget);
var Z = getEndpoint($scope.access, $scope.widget);
其余的都隐藏在其他地方的引擎盖下。关于如何解决这个问题的任何想法?
非常感谢。
【问题讨论】:
-
可以将逻辑分离成
service? -
...然后调用我刚刚输入两个变量的服务并取回一些东西?这一切都从控制器中解脱出来,但我仍然需要手写端点逻辑吗?我只是希望有一种更有效的方法。
-
那么可以考虑使用
$http的拦截器。 -
现在谷歌搜索。谢谢!
标签: json angularjs angular-http