0

我正在使用以下指令来监听输入元素上的输入按键:

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

为什么模型变得不确定?如果我不包含工具提示指令,一切正常。

4

1 回答 1

1

为了使这更具体到我在此处发布的实际问题。这是“点”范围界定问题。更多关于这里

于 2013-09-29T13:37:45.880 回答