【问题标题】:How to make ng-model work with ng-value?如何使 ng-model 与 ng-value 一起工作?
【发布时间】:2017-11-26 03:29:36
【问题描述】:

我有这个输入:

<input type="number" id="totWeight" ng-model="totWeight" ng-value="getTotWeight()" />

哪个值是根据其他字段计算出来的,但也可以通过输入字段手动插入。

问题是在计算时,ng-model 仍然为空,所以我在将数据发送到服务器时尝试分配计算值if (!$scope.totWeight),这不是最优的。此外,如果我通过输入字段插入一个值,然后更改上面提到的触发getTotWeight() 函数的其他字段,$scope.totWeight 有一个值,因此它不会被上面的if (!$scope.totWeight) 更新。

对不起,我不知道该怎么解释。希望有人可以帮助我。

【问题讨论】:

    标签: angularjs angularjs-scope angular-ngmodel angularjs-ng-value


    【解决方案1】:

    NgValue 指令的用途正如docs 所说

    主要用在input[radio]和option元素上,这样当 元素被选中,该元素的 ngModel (或其选择 父元素)设置为绑定值。

    所以当使用输入类型“数字”时,你不应该使用它,因为它的值实际上会在 NgModel 中。

    如果你想在输入改变、按键按下等时触发事件,你应该使用 NgChange、NgKeypress 等来触发该功能。 对于所有情况,该值都将保留在 NgModel 中。

    【讨论】:

    • 不确定应该如何使用 ng-change 或 ng-keypress。我不能像这样在 ng-model 中放置一个函数:ng-model="getTotWeight()" 因为它会给我一个错误。我应该尝试从其他输入字段触发该功能,然后填写有问题的 ng-model 的输入...
    • @Marucs H:幸运的是,我不需要在我的问题中编写所有代码,因为解决方案正如预期的那样简单。谢谢。
    猜你喜欢
    • 2019-06-24
    • 2016-07-29
    • 1970-01-01
    • 2019-08-12
    • 2019-06-02
    • 1970-01-01
    • 1970-01-01
    • 2017-01-18
    • 2015-07-26
    相关资源
    最近更新 更多