gpt4 book ai didi

javascript - 在 AngularJS Controller 上通过 ng-click 调用函数时出错?

转载 作者:行者123 更新时间:2023-11-28 13:26:47 25 4
gpt4 key购买 nike

代码可以在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:您可以输入任意用户名或密码。

最佳答案

loginng-click="login()"指的是“登录”表单,而不是$scope.login功能。

这就是你所拥有的:

<div ng-controller="AuthController as auth">  
<form name="login">
<button ng-click="login()">login</button>
</form>
</div>

在 Controller 中你有:

$scope.login = function(){
}

表单的login在作用域上发布的变量隐藏了 login Controller 中定义的函数。换句话说,Angular 失败,因为它没有调用 ng-click="login()" 的函数。 .

修复方法:

#1 使用 ControllerAs 语法:

this.login = function(){
}

<button ng-click="auth.login()">

或者,#2 - 重命名函数或表单:

<form name="loginForm">
<button ng-click="login()">login</button>
</form>

关于javascript - 在 AngularJS Controller 上通过 ng-click 调用函数时出错?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28550954/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com