从textarea中的ng-model变量中删除newLine

时间:2016-06-14 23:23:08

标签: javascript angularjs

我有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?

1 个答案:

答案 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>

基本上我添加了防止输入的情况的默认值,并且确定了。