0
私はng-repeat
のテキストエリアにオブジェクトの内部にテキストを保存しています。私が必要とするのは、Enter
を押して新しいテキストエリアを作成し、新しいテキストエリアにフォーカスを移動し、前のテキストエリアに新しいラインを追加しないときです。だから、私はこれのようなものです。テキストエリア内の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を削除するにはどうすればよいですか?
1行のデータだけをキャプチャする場合は、なぜ 'input'ではなく' textarea'を使用していますか?また、あなたは本当にここで質問していません。あなたのコードを操作していないものがありますか? – Claies
私はtextareaが必要です、コンテナの幅が十分でないとき、入力は2行を作っていません。問題は、置換が機能しない理由、最後の空行を削除しない理由です。 –