因为标题说我在控制器中通过输入[提交] 点击启动其他功能来调用服务中的功能。单击此输入时出现以下错误:
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) {
答案 0 :(得分:0)
如果您正在使用角度服务(&amp;不是工厂),那么使用var
来代替this
来定义服务内部的功能(服务就像构造函数):
this._register = function(registerExternalData) {
console.log('im in register service function');
/*
...
*/
};
其他一切都相同,代码中不需要任何其他更改。