我正在使用以下指令来侦听输入元素上的按键:
.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();
}
});
};
})
这可以按预期工作。当我在input元素上添加tooltip指令时,上面的指令不再有效。这有解决方法吗?
更新
在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
...
}
为什么模型未定义?如果我不包含tooltip指令,一切正常。