简单(看似)的问题 - 我正在尝试在我的 AngularJS 控制器中进行简单的完整性检查,以确保我的 $resource 实际上是这样实例化的。这是一个较大的应用程序,但例如:
.factory('AccountSearchService_XHR', ["$resource", function($resource) {
var baseUrl = "http://localhost\\:8081/api/:version/accounts/:accountNumber";
return $resource(baseUrl,
{
version: "@version",
accountNumber: "@accountNumber"
},
{
get: {method: 'GET', isArray: false}
});
}]);
然后,在控制器中:
$scope.accountObj.currentAccount = AccountSearchService_XHR.get({
version: "v1",
accountNumber: "1234"
},
function(result) {... etc etc});
对我的 API 的调用工作正常,一切都像我期望的那样返回数据 - 但我想$scope.accountObj.currentAccount
在尝试.get
调用之前测试是否是资源(注意超级重要的大写字母“R”)。
当我$scope.accountObj.currentAccount
在 chrome 调试器中检查对象时,它看起来像:
Resource {accountHolderName: Object, socialSecurityNumer: null, birthDate: "05/14/1965", maritalStatus: ...}
由于我的设置有些复杂,偶尔它会被作为普通对象(typeof
返回"object"
)覆盖,但在调试器中检查它会确认它丢失了它的Resource
状态。
那么 - 有没有人知道一种测试它是否是 $resource 的方法?几乎像typeof $scope.accountObj.currentAccount
回报"Resource"
?或者也许是一种更好的最佳实践方式来确保所有事情都以适当和可敬的方式连接起来?
我在搜索时看到的所有 SO 文章都围绕着实际的 Jasmine 测试。
提前致谢。