为什么ngValue不会通过ngKeypress反映模型更改

时间:2017-05-22 16:59:54

标签: javascript angularjs

我正在尝试使用ngKeypress事件更改模型值,但inputngValue具有model。当我按ENTER时,模型会收到值,ngValue不会处理它。

重现:

  • 创建输入
  • 添加ng-value="value"
  • 添加ng-keypress="change($event)"
  • 在控制器change方法中添加以下代码:if (event.keyCode === 13) $scope.value = new Date()
  • 注意ngValue未反映change方法
  • 所做的更改

示例:https://codepen.io/betonetotbo/pen/MmZJmg

angular 1.6.x中,这不会发生,仅在1.5.x

这是一个错误?

2 个答案:

答案 0 :(得分:0)

根据issue 16006,这是角度1.5.x的预期行为。

  • Angular 1.5.x = ngValue仅更改value attribute而不更改value property
  • Angular 1.6.x = ngValue更改value attributevalue property

在我的情况下,我解决了创建第二个模型并使用ng-model来做我需要的事情。另一种解决方案是迁移到角1.6。

答案 1 :(得分:0)

您报告的那个是仅在角度1.6版本之后添加的功能。 你可以通过一个小技巧实现相同的行为。以这种方式更改HTML:

$scope.getData = () => {
  return $scope.value;
};

在你的控制器里面有这个功能:

fichier\Mention.jpg

这是你在找什么?