【问题标题】:ng-value does not update Ng-modelng-value 不更新 Ng-model
【发布时间】:2019-06-02 11:15:27
【问题描述】:

我设置了输入值数组属性总和,它在输入中显示值,但是当提交表单时,Order 对象中没有得到Quantity 属性。如果我更改值,那么我会得到 Quantity 属性值。如何从ng-value 获取模型值?

<input ng-model="Order.Quantity" ng-value="subOrderList.sum('Quantity')" type="number">

【问题讨论】:

  • 你为什么同时使用ng-model ng-value?你只需要一个。
  • 用于设置默认值
  • 这不是它的工作原理,你不能同时使用。
  • Isaac 是绝对正确的 - 您将默认值设置为绑定到控制器中的 ngModel 指令的属性(如果您愿意,也可以使用 ngInit 指令)

标签: javascript angularjs


【解决方案1】:

要回答您的问题,“ng-value 不会更新 Ng-model”,这是设计使然。如 cmets 中所述,ng-valueng-model 不打算以这种方式使用。

尚不完全清楚您要在这里实现什么,所以这里有几个潜在的解决方案:

如果您只是想显示一个值,那么您根本不需要使用输入。这两者的行为相同,并在需要时更新:

<span>{{subOrderList.sum('Quantity')}}</span>

<span ng-bind="subOrderList.sum('Quantity')"></span>

如果您确实需要通过用户输入来更新此值,那么 HTML 将如下所示:

<input ng-model="Order.Quantity" type="number">

然后您需要在需要时手动更新控制器或服务中的该值:

Order.Quantity = subOrderList.sum('Quantity');

从您的 cmets 看来,您似乎需要一个也动态且偶尔更改的输入,但如果没有数据示例或更多代码,我无法真正看到它是如何工作的。

【讨论】: