我有一個叫做myEnter的指令,它被附加到html中的輸入框中。 下面的代碼:爲什麼我的指令被調用兩次?
app.directive('myEnter', function() {
return function (scope, element, attrs) {
element.bind("keydown", function (event) {
if(event.which === 13) {
$(".window").animate({ scrollTop: $("#scr").height() }, 1000);
scope.$apply(function(){
scope.$eval(attrs.myEnter);
});
event.preventDefault();
}
if(event.which === 38) {
console.log("up key pressed!");
$(".window").animate({ scrollTop: $("#scr").height() }, 1000);
scope.$apply(function(){
var arr = scope.history;
console.log(scope.history);
console.log(arr);
});
event.preventDefault();
}
});
};
});
發生了什麼事,它是檢測輸入按鍵。另外,正如你所看到的,我也讓它檢測到輸入框上的「UP」按鍵。
這兩件事情都很好。但是,無論何時按下UP鍵,控制檯日誌都會「按下向上鍵」!兩次。它應該只運行一次,每運行一次UP鍵都會運行兩次。
誰能告訴我我在這裏做錯了什麼?
我相信在加載HTML頁面時,指令將被自動加載。正在嘗試處理指令的附加觸發器? – CrazyMac
@CrazyMac我在這裏構建了一個終端應用程序,集成了許多功能,而且我只是好奇於實現歷史事物 - 通過按UP鍵,用戶將能夠瀏覽所有先前的命令他之前已經開火.. http://tinypic.com/r/2zzs0id/9 – r0u9hn3ck