Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/478.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Restangular:TypeError:undefined不是函数_Javascript_Angularjs_Restangular - Fatal编程技术网

Javascript Restangular:TypeError:undefined不是函数

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

我想和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
        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) {