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;
};