Angular-UI工具提示与按键事件混淆?

时间:2013-09-28 06:54:05

标签: angularjs angularjs-directive angular-ui angular-ui-bootstrap

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

.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指令,一切正常。

1 个答案:

答案 0 :(得分:1)

为了使这个问题更加具体,我发布了here。这是'点'范围界定问题。有关此here

的更多信息