2017-08-06 33 views
0

所以作爲一個標題說我打電話在功能服務中的其他功能在控制器上啓動輸入[提交]點擊。我得到以下錯誤,當我點擊這個輸入:從控制器錯誤調用服務功能「不是一個功能」

TypeError: authenticationService._register is not a function at Object.$ctrl.registerSubmit (RegisterModalCtrl.js:14)

HTML:

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

控制器功能要求提交:

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

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

通過控制器功能稱爲服務功能

I注入我的服務控制器:如果您使用的角度服務(&不是工廠)則代替var使用this定義內部服務功能

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

您是否嘗試過this.authenticationService._register()? – rrd

+0

它將錯誤更改爲「TypeError:無法讀取未定義的屬性'_register'當我添加關鍵字這個 – BT101

+0

$ ctrl是= this,在開始控制定義? –

回答

0

(服務就像是一個構造函數):

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

其他一切都一樣,不需要對代碼進行任何其他更改。

相關問題