Angularjs 禁用

Angularjs ng-disabled

我有两个用于验证电子邮件和密码的输入。我可以看到以下作品的个人:

myForm.$error.required

正在使用所需的输入值验证输入表单

myForm.email.$valid

正在验证我的正则表达式电子邮件

如果我要打印,即 {{ 使用上面的代码}} 我可以看到输入验证的布尔结果及其正确性。 但是,当我在带有两个表达式的按钮上使用 ng-disabled 时,它不起作用,但是如果我只将 ng-disable 与一个表达式一起使用,我可以看到它确实有效,但我无法同时放置两个表达式,即

<button type="submit" ng-disabled="myForm.$error.required && !myForm.email.$valid">Sign in</button>

目前根据第一个表达式结果变为真,但我认为 && 意味着需要满足两个条件才能得到真? 难道是因为输出是 true + false = true 吗?

如果你想在整个表单无效时禁用按钮,你应该使用 ng-disabled="myForm.$invalid"。

如果你想在没有提供电子邮件或电子邮件无效的情况下禁用该按钮,那么你应该使用 ||而不是 && 因此在这两种情况下按钮都将被禁用。

true + false不是true && false,而是true || false

这就是为什么你没有得到正确的行为,所以:

<button type="submit" ng-disabled="myForm.$error.required || !myForm.email.$valid">Sign in</button>