Fix SYWEB-72 : Improve performance when typing.

Swapped ng-keydown to a directive, which does the same thing (check if up/down
arrow then call history.goUp/goDown). This has *dramatically* improved
performance when typing in rooms which have lots (>100) of messages loaded.
This commit is contained in:
Kegan Dougal 2014-09-23 16:53:27 +01:00
parent e4e8ad6780
commit a7420ff2b5
2 changed files with 16 additions and 2 deletions

View file

@ -135,6 +135,21 @@ angular.module('RoomController')
});
};
}])
.directive('commandHistory', [ function() {
return function (scope, element, attrs) {
element.bind("keydown keypress", function (event) {
var keycodePressed = event.which;
var UP_ARROW = 38;
var DOWN_ARROW = 40;
if (keycodePressed === UP_ARROW) {
scope.history.goUp(event);
}
else if (keycodePressed === DOWN_ARROW) {
scope.history.goDown(event);
}
});
}
}])
// A directive to anchor the scroller position at the bottom when the browser is resizing.
// When the screen resizes, the bottom of the element remains the same, not the top.