我有type="number"
的输入,它与ng-model相关联。我希望能够按向上和向下箭头来更新其值。但是在Microsoft Edge中,ng-model在这种情况下不会更新,请参阅我的示例:
https://plnkr.co/edit/yZaGxkYG87C1YCNSKnf0?p=preview
有没有更新模型的方法,那就是不使用jquery?我们希望避免在控制器中使用jquery
答案 0 :(得分:0)
所以这是来自angularjs和Edge的错误,如下面的讨论所示:
https://github.com/angular/angular.js/issues/15366
建议使用一个片段来自行解决问题:
.directive('input', () => {
if(currentBrowser!="edge") return {};
return {
link: (scope, elem) => {
if (elem[0].type === 'number') {
elem.on('keydown', evt => {
switch (evt.which) {
case 38: // UP_ARROW
case 40: // DOWN_ARROW
scope.$evalAsync(() => elem.triggerHandler('change'));
break;
}
});
}
}
};
});
答案 1 :(得分:0)
它应该适用于此。问题是,由于您尚未在控制器中初始化,因此显示存在问题。它应该工作,但似乎在Edge中不起作用。其他一切都是一样的。
<body ng-controller="myCtrl">
<h1>{{helloworld}}</h1>
<input type="number" ng-model="md"/>
<div ng-if="md">{{md}}</div>
</body>
检查代码: