javascript - Angular 2 与[禁用]的双向绑定(bind)

标签 javascript angular angular2-directives

根据另一个输入的 ngModel,我有一个带有 [disabled] 的输入。最初 [disabled] 工作正常,但当我们更改相关输入值时,[disabled] 属性不起作用。如何在 [disabled] 属性上应用两个绑定(bind)?

以下是代码片段。

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

此模型 isDisabled 已正确更改。我可以在模板 {{isDisabled}} 中看到这样的值变化。但是没有体现在选择框的[disabled]属性中。

<select [ngModel]="userInput" [disabled]="isDisabled">
<option value="test">Test</option>
</select>

最佳答案

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

您可以使用 ngValue 属性绑定(bind)轻松解决此数据类型值问题。

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

Plunker Demo

关于javascript - Angular 2 与[禁用]的双向绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44301560/

相关文章:

javascript - 发送 Ajax 请求之前的事件(向请求添加一些数据)

javascript - js 为什么 else{} 被执行?

javascript - 加载完所有图像后从 JQuery 'get' 返回

Angular/RXJS - 跟踪陷入重试模式的 HTTP 请求

angular2-template - 基于 If 条件我想按照 angular2 中的要求创建字段

angular - [class] [attr] [style] 指令如何工作

javascript - jQuery DataTables fnCreatedCell 未被调用

angular - 仅在填写必填输入字段后导航到特定组件

html - Angular2 - 将 CSS 类添加到选定元素

javascript - HTTPInterceptor 没有拦截来自 Angular 中第 3 方小部件的 http 请求