2016-06-14 28 views
0

我有文本區域的ng-repeat,其中我將文本保存在數組中的對象內。我需要的是當我按Enter我們創建新的textarea移動焦點新的它,而不是在以前的textarea添加新行。所以我有這樣的東西。從textarea中的ng-model變量中刪除newLine

//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

如果你只想捕捉一行數據,你爲什麼要用'textarea'而不是'input'?另外,你並沒有在這裏問過一個問題。有沒有與你的代碼工作? – Claies

+0

我需要textarea,當容器的寬度不夠時,輸入不是兩行。問題是爲什麼替換不起作用,爲什麼它不刪除最後一個空行。 –

回答

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> 

基本上我添加防止默認的情況下進入,並制定出來。