angularjs – 使用ng-keyup递增或递减输入的ng-model
发布时间:2020-12-17 07:08:00 所属栏目:安全 来源:网络整理
导读:我想使用ng-keyup来监视向上和向下箭头键并增加或减少输入中的值.这似乎应该是直截了当的,但这个小提琴不起作用: http://jsfiddle.net/a8tgW/3/ HTML div ng-controller="MyCtrl" input type="text" ng-model="minPotatoes" ng-keyup="onKeyup($event,minPo
我想使用ng-keyup来监视向上和向下箭头键并增加或减少输入中的值.这似乎应该是直截了当的,但这个小提琴不起作用:
http://jsfiddle.net/a8tgW/3/
HTML <div ng-controller="MyCtrl"> <input type="text" ng-model="minPotatoes" ng-keyup="onKeyup($event,minPotatoes)" /> <input type="text" ng-model="maxPotatoes" ng-keyup="onKeyup($event,maxPotatoes)" /> </div> JS function MyCtrl($scope) { $scope.onKeyup = function (evt,val) { if(evt.keyCode === 40) { val -= 1 console.log("decrementing val",val) } else if (evt.keyCode === 38) { val += 1 console.log("incrementing val",val) } } $scope.minPotatoes = 2; $scope.maxPotatoes = 10; } 我尝试过使用$apply,但摘要已经在进行中.我已经阅读了this问题,但它使用了一个无法访问模型引用的外部监听器. 我可以直接引用范围值,而不是传入的值,但如果密钥处理程序不知道它正在影响的模型,它将更少耦合. 解决方法
您希望更改范围变量而不是本地val变量.
<input type="text" ng-model="potatoCount" ng-keyup="onKeyup($event,'potatoCount')" /> function MyCtrl($scope) { $scope.onKeyup = function (evt,val) { if(evt.keyCode === 40) { --$scope[val]; console.log("decrementing val"); } else if (evt.keyCode === 38) { ++$scope[val]; console.log("incrementing val"); } }; $scope.potatoCount = 42; } http://jsfiddle.net/ALjR5/2 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |