alp*_*ogg 0 javascript controller angularjs
该代码可在http://ec2-52-1-22-32.compute-1.amazonaws.com/查看.
在登录表单中,我通过ng-单击登录表单的按钮来调用AuthController的当前简单login()函数.当我调用此函数时,我在控制台中收到一个我无法解密的错误.在FF中,我收到" args is null"错误.在Chrome中,错误显示为" TypeError: Cannot read property '0' of null".不知道如何调试这个?为什么不起作用?
PS:您可以输入任何用户名或密码.
在login中ng-click="login()"是指"登录"的形式,而这给$scope.login功能.
这就是你拥有的:
<div ng-controller="AuthController as auth">
<form name="login">
<button ng-click="login()">login</button>
</form>
</div>
Run Code Online (Sandbox Code Playgroud)
在控制器中你有:
$scope.login = function(){
}
Run Code Online (Sandbox Code Playgroud)
login在作用域上发布的表单变量隐藏login了控制器中定义的函数.换句话说,Angular失败,因为它没有调用函数ng-click="login()".
修复方法:
#1使用ControllerAs语法:
this.login = function(){
}
Run Code Online (Sandbox Code Playgroud)
和
<button ng-click="auth.login()">
Run Code Online (Sandbox Code Playgroud)
或者,#2 - 重命名函数或表单:
<form name="loginForm">
<button ng-click="login()">login</button>
</form>
Run Code Online (Sandbox Code Playgroud)