0

我使用下面的指令來聽的輸入元素輸入按鍵:Angular-UI工具提示按鍵事件?

.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(); 
      } 
     }); 
    }; 
}) 

可正常工作。當我在輸入元素上添加工具提示指令時,上述指令不再起作用。有沒有解決方法?

UPDATE

bingjie2680的建議後,我試圖用NG-按鍵和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指令,一切工作正常。

+0

爲什麼需要tooltip指令? bootstrap具有'tooltip'屬性 –

+0

嗯,我不這樣做,但是我依賴於ui.bootstrap作爲其他指令,並且ui.bootstrap與bootstrap 2.3.2兼容。我只能在最新的(3.0.0)版本中找到工具提示組件。 – kliron

+0

angular有ng-keypress指令,你可以使用它並把你的邏輯放在控制器中。 – bingjie2680

回答

1

爲了讓這個更具體到真實的問題,我發佈了here。這是'點'範圍問題。關於此的更多信息here