我正在使用以下指令来监听输入元素上的输入按键:
.directive('ngEnter', function () {
return function (scope, element, attrs) {
element.bind("keypress", function (event) {
if(event.which === 13) {
scope.$apply(function (){
scope.$eval(attrs.ngEnter);
});
event.preventDefault();
}
});
};
})
这按预期工作。当我在输入元素上添加工具提示指令时,上述指令不再起作用。有解决方法吗?
更新
在 bingjie2680 的建议之后,我尝试使用 ng-keypress 和 ng-keydown 但偶然发现了另一个问题。上述指令似乎会影响同一元素的 ng-model 指令。模型变得未定义。这是输入标签:
<input type="text" placeholder="tags"
tooltip="tooltip text here"
tooltip-placeent="top"
tooltip-trigger="focus"
ng-model="currentTag" ng-keydown="addTag($event)" />
这是 addTag 的相关部分:
$scope.addTag = function($event) {
if ($event.keyCode !== 13) return;
console.log($scope.currentTag); <-- currentTag is undefined here
...
}
为什么模型变得不确定?如果我不包含工具提示指令,一切正常。