来自控制器错误"的被叫服务功能不是功能"

时间:2017-08-06 16:23:00

标签: angularjs service controller

因为标题说我在控制器中通过输入[提交] 点击启动其他功能来调用服务中的功能。单击此输入时出现以下错误:

  

TypeError:authenticationService._register不是函数       at Object。$ ctrl.registerSubmit(RegisterModalCtrl.js:14)

HTML:

<form method="post" 
      name="registerData" 
      id="registerData" 
      ng-submit="$ctrl.registerSubmit()">

调用控制器函数提交:

$ctrl.registerSubmit = function() {
    console.log('im in registerSubmit controller function');
    authenticationService._register(); // im line 14 obviously
    $uibModalInstance.dismiss('cancel');
};

控制器功能调用的服务功能:

var _register = function(registerExternalData) {
    console.log('im in register service function');
    /*
        ...
    */
};

我在控制器中注入我的服务:

app.controller('RegisterModalCtrl', ['$scope', '$location', '$uibModalInstance', 'authenticationService',
function($scope, $location, $uibModalInstance, authenticationService) {

1 个答案:

答案 0 :(得分:0)

如果您正在使用角度服务(&amp;不是工厂),那么使用var来代替this来定义服务内部的功能(服务就像构造函数):

this._register = function(registerExternalData) {
    console.log('im in register service function');
    /*
        ...
    */
};

其他一切都相同,代码中不需要任何其他更改。