无法将 mySQL 数据库条目文本“\n”转换为 Angular 中的“<br>”?

Cannot convert mySQL database entries text '\n' to '<br>'in Angular?

我可以从数据库中读取数据到我的 angular 应用程序,但我的文本中只给出了静态 \n 而不是新行。我知道我应该将所有 \n 事件转换为 <br /> 但我没有这样做,即使使用 echo nl2br;

//extract from my php file
if($result = mysqli_query($con, $sql))   
{

  $animals = [];
  $cr = 0;
  while($row = mysqli_fetch_assoc($result))
  {

    $animals[$cr]['animal']  = $row['animal'];
    $animals[$cr]['t1'] = $row['title1'];
    $animals[$cr]['p1'] = $row['paragraph1'];
    $cr++;

}
echo nl2br($animals);
  echo json_encode($animals);

下面是我的angular文件

//extract from my animals.component.html file

    <div class="container" *ngFor="let animal of this.animals">

        {{animal.t1}}
        {{animal.p1}}
        {{animal.t2}}

    </div>

但是,我在网页上的输出(来自 animal.t1)与数据库条目的文本相同:

Animals \n are \n fun \n .

我尝试了很多不同的方法,但似乎无法将 \n 转换为 <br>。有人对此有任何建议吗?

使用nl2br:

$animals[$cr]['t1'] = nl2br($row['title1']);

nl2br 采用字符串而不是数组。如果你 select 查询中的列就容易多了。只需映射行数组:

  // SELECT animal, t1, p1 FROM table WHERE .....

  while($row = mysqli_fetch_assoc($result))
  {
      $animals[] = array_map('nl2br', $row);
  }
  echo json_encode($animals);

如果 Angular 正在将 HTML 转换为实体,那么您可能需要查看此处 Using HTML Entities within Angular strings