Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么ngValue不';t通过ngKeypress反映型号变化_Javascript_Angularjs - Fatal编程技术网

Javascript 为什么ngValue不';t通过ngKeypress反映型号变化

Javascript 为什么ngValue不';t通过ngKeypress反映型号变化,javascript,angularjs,Javascript,Angularjs,我正试图使用ngKeypress事件更改模型值,但是输入具有相同模型的ngValue。当我按下ENTER时,模型接收到值,而ngValue不处理它 复制: 创建输入 添加ng value=“value” 添加ng keypress=“更改($event)” 在控制器change方法上添加此代码:if(event.keyCode==13)$scope.value=new Date() 注ngValue不反映change方法所做的更改 例如: 在angular 1.6.x中,这不会发生,仅在1.

我正试图使用
ngKeypress
事件更改模型值,但是
输入
具有相同
模型的
ngValue
。当我按下
ENTER
时,模型接收到值,而
ngValue
不处理它

复制:

  • 创建输入
  • 添加
    ng value=“value”
  • 添加
    ng keypress=“更改($event)”
  • 在控制器
    change
    方法上添加此代码:
    if(event.keyCode==13)$scope.value=new Date()
  • ngValue
    不反映
    change
    方法所做的更改
例如:

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

这是一个bug?

根据这一点,这是angular 1.5.x上的预期行为

  • Angular 1.5.x=
    ngValue
    仅更改
    value属性
    ,而不更改
    value属性
  • 角度1.6.x=
    ngValue
    更改
    值属性
    值属性

在我的例子中,我解决了创建第二个模型的问题,并使用
ng模型来完成我需要的工作。另一个解决方案是迁移到angular 1.6。

您报告的是仅在angular 1.6版本之后添加的功能。 你可以用一个小技巧达到同样的行为。通过以下方式更改您的HTML:

<input type="text" ng-value="getData()" ng-keypress="stuff($event)">

这就是你要找的吗

我打开了你的样品,它工作正常。你在期待什么?@Quirimo抱歉,这个例子是使用angular 1.6运行的,现在我将它修改为版本1.5.8,再试一次。但是你期望的行为是什么,而它没有发生?@Quirimo是的,以前的版本(使用angular 1.6)是我期望的行为。好的,我得到了你想要实现的,在答案中张贴代码更简单,看看这是否是您要寻找的
$scope.getData = () => {
  return $scope.value;
};