我正在使用ng-disabled
使表单的提交按钮无法点击,除非所有表单验证都是好的。
当我使用
时,我的工作正常<button ng-disabled="form.$invalid">OK</button>
但是,还有另一项检查我希望它完成,这是在控制器函数foo()
中(在控制器定义中的$ scope上发布)。我已经确认foo会返回我想要的东西,但是当我有
<button ng-disabled="form.$invalid && foo()">OK</button>
按钮永远不会被禁用。我究竟做错了什么?这里不允许函数调用吗?
答案 0 :(得分:1)
每当我得到奇怪的结果时,我要做的第一件事就是确保任何条件逻辑都是正确的。一个非常常见的是混淆&amp;&amp; 和 || 。
如果您没有在控制台中看到错误,那么该函数可能会被调用,而问题是您的逻辑中的错误。
答案 1 :(得分:0)
如果该功能真的属于控制器功能,那么您需要通过controllerAs
公开您的控制器并通过公开的方法(即路线中的controllerAs: 'ctrl'
)和ctrl.foo()
进行调用。在您的模板中代替),或者您需要在$scope
上发布此方法。
答案 2 :(得分:0)
我遇到了类似的问题,有点丢失了我脑子里的逻辑,一直以为我应该使用&&
,但实际上逻辑应该是||
,
e.g。
ng-disabled="!privilegeReviews.length || checkSaveRevertValidity()