作者:VASTEw | 来源:互联网 | 2023-09-23 18:41
我正在尝试使用$resource获取请求的响应,例如我有:
angular.module('app').factory('AuthResource', ['$resource', function($resource) {
return {
isAuthenticated : function() {
return $resource('/api/v1/auth/authenticated').query();
}
}
}]);
然后在我的控制器中,我正在调用此服务并执行:
console.log(AuthResource.isAuthenticated());
这不会返回实际结果,这只是一个单个对象{‘success’:’true’}.
相反,它返回:
Resource {$resolved: false, $then: function, $get: function, $save: function, $query: function…}
$resolved: true
$then: function (callback, errback) {
success: false
__proto__: Resource
我如何获得实际返回的对象?我不是将它应用于任何模型,只是使用数据来确定一些路由.
谢谢!
解决方法:
我设置了这样的测试:
var status = {};
$httpBackend.expectGET("/api/Accounts/AuthenticationStatus").respond(status);
然后我有一个期望:
expect(actual).toBe(status);
我收到以下错误:
Expected { $resolved : true, $then : Function } to be { }.
在我挠了头很长时间之后,我终于意识到get()函数返回的对象永远不会与我设置$httpBackend服务的对象完全相同,但它会返回基础对象{$resolved:…,$then:…}并在解析后,将我的响应对象中包含的其他字段添加到该对象.
希望这比以前的海报更有意义.