如何在使用AngularJS的textarea中插入制表符(缩进)?在textarea中插入制表符
我尝试这样做:
<textarea class="form-control" rows="10" ng-model="vm.text" ng-keydown="vm.handleTabKey($event)"></textarea>
随着功能handleTabKey
之中:
function handleTabKey(e) {
if (e.which === 9) {
e.preventDefault();
var start = e.target.selectionStart;
var end = e.target.selectionEnd;
vm.text = vm.text.substring(0, start) + '\t' + vm.text.substring(end);
e.target.selectionStart = e.target.selectionEnd = start + 1;
}
};
虽然制表符被插入,插入位置总是在最后,尽管最后一行。
另一个问题是,如果我在最后插入一个或多个新行,按Tab将在行的末尾插入一个制表符,就像忽略它们一样。换句话说,在输入非空白字符之前,vm.text
不包含这些新行。
谢谢,这解决了第二个问题,但它并没有解决第一个问题。 – someguy
尝试添加'e.stopPropagation();'以确保没有其他事件处理程序在你之后被调用。 –
不幸的是,这并没有奏效。 – someguy