假设我有资源的角度服务:
var res = $resource('/myurl/:index', {index: '@index'})
有没有办法让我可以定义任意路径,以便在我的服务中调用:
$res.query()
我可以获得“[1,2,3]”的一些硬编码输出,而无需资源实际调用服务器或期望服务器具有支持查询()的功能?
假设我有资源的角度服务:
var res = $resource('/myurl/:index', {index: '@index'})
有没有办法让我可以定义任意路径,以便在我的服务中调用:
$res.query()
我可以获得“[1,2,3]”的一些硬编码输出,而无需资源实际调用服务器或期望服务器具有支持查询()的功能?
我认为你接近这个有点错误。 $resource
是用于创建服务的工厂,您可以在其中为给定的 API 端点指定 url 和其他参数。如果您有一个假的或测试的 API 端点,只需创建一个返回硬编码数据的假服务。
这是一个例子:
.factory('TestDataResource', function() {
return {
query: function() {
// Return Hard-coded data
return [1, 2, 3];
}
}
});
然后你可以在你的控制器或任何地方使用它,例如:
.controller('MyController', function($scope, TestDataResource) {
$scope.data = TestDataResource.query();
// $scope.data should contain [1, 2, 3]
});
您可以将 JSON 文件用于示例数据。
$resource
在幕后调用$http
,因此您应该能够用来$httpBackend
模拟响应。这个页面有丰富的关于这方面的信息。