模型更改时如何在禁用的输入控件中保留值?

How to keep values in disabled input control when model changes?

我有一个 JSON 对象,我使用它创建了一个表单,每个值都有一个禁用控件和一个启用输入控件,禁用输入供用户参考,而他可能会更改活动输入控件中的值。我需要在禁用输入中保持值固定,同时使用相同的模型。任何帮助将不胜感激。

如果您使用模板驱动的表单,您可以对禁用的元素使用一次性绑定,这样它们就不会更新。

由于表单模型和数据模型已经分开,因此使用响应式表单会更容易。

这是一个示例(模板驱动的表单):

正常绑定(可编辑)的项目:

      <input class="form-control"
             id="productNameId"
             type="text"
             placeholder="Name (required)"
             required
             minlength="3"
             [(ngModel)]=product.productName
             name="productName" />

一次性绑定(不可编辑)项:

      <input class="form-control"
             id="productNameId"
             type="text"
             placeholder="Name (required)"
             required
             minlength="3"
             ngModel=product.productName   /* <- the difference is here */
             name="productName" />

这是一个 stackblitz:https://stackblitz.com/edit/angular-hnyy5d

[(ngModel)] -> 双向绑定

[ngModel] -> 单向绑定

ngModel -> 一次性绑定(只绑定初始值,不会更新)