【发布时间】:2017-08-31 02:25:43
【问题描述】:
我不知道这是问题还是正常行为。
如果我们有这样的表格:
<form #form="ngForm" >
<div>
<label>field1</label>
<input type="text" name="field1" [(ngModel)]="mainVar" [disabled]="someVar" />
</div>
<div>
<label>field2</label>
<input type="text" name="field2" [(ngModel)]="someVar" />
</div>
</form>
同时变量mainVar和someVar在组件中设置为空字符串:
mainVar = '';
someVar = '';
这将导致名称为 field1 的输入被禁用,即使 someVar 是空字符串。据我所知,空字符串变量应该返回 false 到 if 语句。
但最奇怪的是,如果我从输入 field1 中删除 [(ngModel)] 属性,它将正常工作(输入 field1如果我在输入 field2)
中输入内容,strong> 将被禁用【问题讨论】:
-
布尔属性不考虑它们的值。如果该属性存在,则表示
true。 -
嗯,这很奇怪。但是,如果我删除 [(ngModel)],为什么它的行为与您所说的相反
-
@suraj ,这就是我在示例中所说的,空字符串应该返回 false
-
[disabled]="''"将返回true,真正的谜团是为什么当你删除模型时它会起作用。
标签: javascript angular angular2-forms angular2-directives angular2-ngmodel