Angular 2双向绑定[禁用]

Wis*_*hnu 5 javascript angular2-directives angular

我有一个输入,[disabled]取决于ngModel另一个输入。最初[disabled]运行正常,但是当我们更改从属输入值时,该[disabled]属性无法运行。如何在[disabled]属性上应用两个绑定?

以下是代码段。

<select [ngModel]="isDisabled" (ngModelChange)="isDisabled=$event">
<option value="0">Disabled</option>
<option value="0">Enabled</option>
</select>
Run Code Online (Sandbox Code Playgroud)

该模型isDisabled已正确更改。我可以在template中看到这样的值变化{{isDisabled}}。但未反映在[disabled]选择框的属性中。

<select [ngModel]="userInput" [disabled]="isDisabled">
<option value="test">Test</option>
</select>
Run Code Online (Sandbox Code Playgroud)

Pan*_*kar 1

主要问题是您value对两个选项使用相同的 0 。但即使你将它们分别更改为1& 。它不会工作,因为属性将值存储为(string '0') & (string ) (简而言之,将其值字符串化)。0EnableDisablevalue'0''1'1

您可以通过使用属性绑定轻松解决此数据类型值问题ngValue

<select [ngModel]="isDisabled" (ngModelChange)="isDisabled=$event">
  <option [ngValue]="1">Disabled</option>
  <option [ngValue]="0">Enabled</option>
</select>
Run Code Online (Sandbox Code Playgroud)

笨蛋演示