我有ng-repeat
textarea,其中我将文本保存在数组中的对象内。我需要的是当我按Enter
时,我们创建新的textarea,将重点放在新的上,而不是在之前的textarea上添加新行。所以我拥有的是这样的。
//Javascript
$scope.texts = [{}];
var addNewLine = function(index){
var newObj = {};
// NEXT LINE IS NOT WORKING
$scope.texts[index].text=$scope.texts[index].text.replace(/\n|\r|\r\n|\n\r/g, '');
$scope.texts.splice(index+1, 0, newObj);
$scope.selected = newObj;
}
var removeLine = function(index){
if(!$scope.texts[index].text||$scope.texts[index].length==0){
$scope.texts.splice(index, 1);
if(index==0) $scope.selected = $scope.texts[1];
else $scope.selected = $scope.texts[index-1];
}
}
$scope.checkPress = function(event, index){
if(event.keyCode == 13) addNewLine(index);
else if(event.keyCode == 8) removeLine(index);
}
//HTML
<textarea ng-repeat="textObj in texts"
ng-model="textObj.text" ng-keyup="checkPress($event, $index)"
focus-if="selected.$$hashKey == textObj.$$hashKey"
ng-click="selected=textObj"></textarea>
焦点 - 如果我正在使用THIS PLUGIN。当我添加新的textarea
时,如何从之前的textarea
删除newLine?
答案 0 :(得分:0)
<textarea ng-keyup="checkPress($event, $index)" ng-keydown="$event.keyCode == 13 && $event.preventDefault()" focus-if="selected.$$hashKey == objRow.$$hashKey" ng-click="selectText(objRow)"></textarea>
基本上我添加了防止输入的情况的默认值,并且确定了。