带\ n的angularjs textarea模型应该开始换行

时间:2016-11-14 12:22:57

标签: javascript angularjs angularjs-ng-repeat angularjs-ng-model

我有如下所示的示例json,我试图在textarea(Plunker)中表示标签和值的关键字。但是如果模型包含" \ n"则textarea不起作用。只要有\ n我希望文本出现在新行中。

 $scope.sampleData =  {
    "id": 10000,
    "transactionid": "gec43434",
    "status": "COMPLETED",
    "session_id": "TTYUU455667",
    "errors": "1",
    "start_timestamp": "2016-11-07 02:35:35",
    "log_field": "\n\nSample Text\nRowX\n\nRowY\nRowZ\n"
  }

在textarea,我想" log_field"价值出现为:

Sample Text
RowX
RowY
RowZ

即使有多个\ n \ n ...也应该只有一个换行符。

3 个答案:

答案 0 :(得分:0)

Textarea似乎正在工作,你是否在log_field textarea向下滚动,因为它从2 \ n&ns开始?

对于上一个查询,您应该创建一个自定义过滤器,它可以用一个换行符替换多个连续换行符。它非常简单和基本,但如果您需要更多指导,请告诉我。

有关此处过滤器的详细信息:https://docs.angularjs.org/guide/filter。它还提供了有关如何创建自定义过滤器的示例。

答案 1 :(得分:-1)

您可以使用以下内容删除额外的新行字符:

"\n\nSample Text\nRowX\n\nRowY\nRowZ\n".replace(/\n\s*\n/g, '\n');

var text = "\n\nSample Text\nRowX\n\nRowY\nRowZ\n".replace(/\n\s*\n/g, '\n');
document.getElementById("foo").value = text;
<textarea id="foo"></textarea>

答案 2 :(得分:-1)

尝试添加以下代码:

$scope.sampleData.log_field = $scope.sampleData.log_field.replace(/\\n{1,}/g,'\\n');