我正在努力让AngularJS正常工作,我正在尝试实现一个小东西。
我有一个类型 number
的输入(这可能会导致问题(,它绑定到控制器中的一个变量,如果此输入为空,我需要禁用一个按钮。
这是我的输入和按钮的代码:
<input type="number" min="0" max="20" ng-model="student.mark">
<button ng-disabled="!student">Send</button>
如果字段为空,我尝试了几种解决方案来禁用我的按钮,但如果它的值为 0
,请启用它:
<button ng-disabled="!student || !student.mark">Send</button>
<button ng-disabled="!student || !angular.isNumber(student.mark)">Send</button>
<button ng-disabled="!student || student.mark == ''">Send</button>
<button ng-disabled="!student || student.mark === ''">Send</button>
这些似乎都不起作用。如果我的输入中有任何数字,它将正常工作,但是如果我的值为"0",则该按钮将被禁用,或者如果我输入有效值然后删除它,该按钮将保持启用状态。
让我认为它应该起作用的是,如果我使用 {{ student.mark }}
显示值,值0
确实会显示为"0",空输入将显示为空。
谢谢。
注意:0 被视为假。
在控制器中定义
$scope.student.mark = null;
使用条件
ng-disabled="student.mark == null && student.mark < 0"
我建议你为此使用表单,如下所示:
<form name="formName" ng-submit="someMethod(student)" autocomplete="off"
novalidate>
<input type="number" min="0" max="20"
ng-model="student.mark" placeholder="e.g. 12"
ng-required="true" />
<button type="submit" value="Send" ng-disabled="formName.$invalid || <something else here>" />
</form>
我尝试了更多的事情,并实际测试了值是否null
做到了:
<button ng-disabled="!student || student.mark === null">Send</button>