Javascript Restangular:TypeError:undefined不是函数
我想和angularjs和restangular一起玩。 我在使用Restanglar时遇到问题,因为它会给我一个错误:Javascript Restangular:TypeError:undefined不是函数,javascript,angularjs,restangular,Javascript,Angularjs,Restangular,我想和angularjs和restangular一起玩。 我在使用Restanglar时遇到问题,因为它会给我一个错误: TypeError: undefined is not a function at Object.login (localhost:8000/src/common/factories/session.js:110:38) at localhost:8000/src/common/factories/session.js:207:34
TypeError: undefined is not a function
at Object.login (localhost:8000/src/common/factories/session.js:110:38)
at localhost:8000/src/common/factories/session.js:207:34
at Scope.$emit (localhost:8000/vendor/angular/angular.js:12809:33)
at Scope.$scope.Login (localhost:8000/src/common/factories/session.js:185:28)
at localhost8000/vendor/angular/angular.js:10735:21
at localhost:8000/vendor/angular/angular.js:18942:17
at Scope.$eval (localhost:8000/vendor/angular/angular.js:12595:28)
at Scope.$apply (localhost:8000/vendor/angular/angular.js:12693:23)
at Scope.$delegate.__proto__.$apply (<anonymous>:855:30)
at HTMLButtonElement.<anonymous>
谢谢你的帮助 您的依赖项注入错误:
.factory("$Session", [
'$rootScope','$q','$location','$log','$http','constSessionExpiry',
function($rootScope, $q, $location, $log, $http, Restangular, authService, constSessionExpiry) {
您正在将constSessionExpiry
作为Restangular
注入,后两个服务没有任何内容
这意味着调用Restangular.setBaseUrl
实际上是在查找未定义且不是函数的20.setBaseUrl
,因此出现了错误
要进行修复,请确保传递了与函数参数匹配的正确服务名称,例如:
.factory("$Session", [
'$rootScope','$q','$location','$log','$http','Restangular','authService','constSessionExpiry',
function($rootScope, $q, $location, $log, $http, Restangular, authService, constSessionExpiry) {
当错误中的行号与javascript文件不匹配时,很难判断这些错误在哪里。你能确认session.js的第110行和第207行是怎么说的吗?你是对的,我在错误粘贴后做了修改,对不起。110处的错误行是:“.setBaseUrl('backend/api/v1')”,207处是:“$Session.login(data);”感谢这个错误意味着,
$Session
是未定义的,在这一点上我帮不了什么忙,因为我从未使用过angular库,但它看起来像是当函数($rootScope,$log,$Session,$state)时{
被调用,因为它没有接收$Session参数。看起来它们的使用方式不一样。这是否相关?看起来需要使用FirstFrom,因为我可以直接将此函数与Restanglar一起使用。我尝试记录.info()我的$Session对象,它包含我工厂中定义的所有函数。但尝试使用restanglar执行相同操作时,返回“20”不是一个有函数的对象…不明白。非常感谢,它解决了我的问题。我不明白依赖项顺序对函数参数有影响。对不起,我需要阅读更多关于angularjs的文档。
.factory("$Session", [
'$rootScope','$q','$location','$log','$http','Restangular','authService','constSessionExpiry',
function($rootScope, $q, $location, $log, $http, Restangular, authService, constSessionExpiry) {