当前位置: 首页 > 知识库问答 >
问题:

AngularJS:段落元素的换行符

许鸿志
2023-03-14

在Angular中,我需要从包含换行符的文本块中生成一系列段落元素?

我可以想出几种方法来做到这一点。然而,我想知道是否有一种“官方”的角度方法,或者在AngularJS的背景下,最优雅的方法是什么。

发件人:

Lorem ipsum dolor sit amet,concetetuer adipiscing elit。\我的名字叫尤伊斯莫德·丁奇登,名字叫拉奥里特·多洛尔。\n
大aliquam erat volipat。我们将尽可能少地生活。

到:

<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</p>
<p>Sed diam nonummy nibh euismod tincidunt ut laoreet dolore.</p>
<p>Magna aliquam erat volutpat. Ut wisi enim ad minim veniam.</p>

我可以想出很多方法来做到这一点:

  1. 修改控制器中的文本(尽管我宁愿避免修改我的模型)
  2. 使用指令,并在链接函数中生成段落(似乎过于繁琐)
  3. 使用过滤器(我当前最喜欢的过滤器)创建一个数组以通过管道导入ng repeat

共有3个答案

程卓君
2023-03-14

您可以使用css属性解决此问题并在p html元素中使用{{text}}

 white-space: pre-line;
宰父霖
2023-03-14
var myApp = angular.module('myApp', ['ngSanitize']);
myApp.controller('myCtrl', function($scope){
    $scope.myText = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit.\nSed diam nonummy nibh euismod tincidunt ut laoreet dolore.\nMagna aliquam erat volutpat. Ut wisi enim ad minim veniam."
});
myApp.filter('nl2p', function () {
    return function(text){
        text = String(text).trim();
        return (text.length > 0 ? '<p>' + text.replace(/[\r\n]+/g, '</p><p>') + '</p>' : null);
    }
});

http://jsfiddle.net/moderndegree/934aZ/

吕自明
2023-03-14

我能想到的最好的解决方案是创建一个过滤器:

angular.module('myApp').
filter('nlToArray', function() {
  return function(text) {
      return text.split('\n');
  };
});

这将获取一个文本块,并为每个段落创建一个新的数组元素

然后可以将此阵列插入ng repeat指令:

<p ng-repeat="paragraph in textBlock|nlToArray track by $index">{{paragraph}}</p>
 类似资料:
  • 问题内容: 在Angular中,我需要从包含换行符的文本块中生成一系列段落元素吗? 我可以想到几种方法来做到这一点。但是我想知道是否有一种“官方的” Angular方法,或者在AngularJS上下文中最优雅的方法是什么? 一个例子 从: Lorem ipsum dolor坐下来,管教着迷。\ n Sed diam nonummy nibh euismod tincidunt ut laoreet

  • 1. 段落的前后必须是空行: 空行指的是行内什么都没有,或者只有空白符(空格或制表符) 相邻两行文本,如果中间没有空行 会显示在一行中(换行符被转换为空格) 2. 如果需要在段落内加入换行(<br>): 可以在前一行的末尾加入至少两个空格 然后换行写其它的文字 3. Markdown 中的多数区块都需要在两个空行之间。

  • 一个 Markdown 段落是由一个或多个连续的文本行组成,它的前后要有一个以上的空行(空行的定义是显示上看起来像是空的,便会被视为空行。比方说,若某一行只包含空格和制表符,则该行也会被视为空行)。普通段落不该用空格或制表符来缩进。 「由一个或多个连续的文本行组成」这句话其实暗示了 Markdown 允许段落内的强迫换行(插入换行符),这个特性和其他大部分的 text-to-HTML 格式不一样(

  • 我正在使用apache poi 3.8将值写入word模板。我将word文件中的特定字符串(键)替换为所需的值,例如,word文档中有一个包含键%entry1%的段落,我想将其替换为“entry text line1\n new line”。在我的实现中,所有被替换的键和值都存储在一个地图中。 HWPFDocument的代码为: 这段代码工作得很好,我只需要在输入字符串中添加\n作为换行符。但是,

  • 原则 一个段落只能有一个主题,或一个中心句子。 段落的中心句子放在段首,对全段内容进行概述。后面陈述的句子为核心句服务。 一个段落的长度不能超过七行,最佳段落长度小于等于四行。 段落的句子语气要使用陈述和肯定语气,避免使用感叹语气。 段落之间使用一个空行隔开。 段落开头不要留出空白字符。 引用 引用第三方内容时,应注明出处。 One man’s constant is another man’s

  • 段落是被空行分割的文字片段,左侧必须对齐(没有空格,或者有相同多的空格)。 缩进的段落被视为引文。这里是段落 缩进的段落被视为引文。这里也是段落 缩进的段落被视为引文。这里还是段落 缩进的段落被视为引文。 源码 | 这里是段落 缩进的段落被视为引文。 | 这里也是段落 缩进的段落被视为引文。 | 这里还是段落 缩进的段落被视为引文。 注解 段落,可以前空2格,或使用 |,做