如何动态构建HTML表作为发送电子邮件的模板(ng-repeat)

时间:2018-05-09 21:36:55

标签: c# html angularjs string angularjs-ng-repeat

目前我构建HTML模板并在将“已解析的电子邮件模板”发送给收件人之前将{Title}占位符替换为匹配值,但问题是无法动态生成表中的“数据列表”,从而使用angularjs' ng-repeat'但是在解析时,它会发出angularjs标签而不是生成HTML表示

我的问题是如何使用ng-repeat构建'angularjs'模板,可以用于动态发送电子邮件模板,而无需在浏览器中加载页面,因为似乎仅在浏览器中打开时才会翻译angularjs页面

如何使用ng-repeat动态生成HTML标签,足以作为电子邮件发送,谢谢

 {Title} Placeholder 

<table style="width:100%">
  <tr>
    <th>Firstname</th>
    <th>Lastname</th> 
    <th>Age</th>
  </tr>
  <tr>
    <td>Jill</td>
    <td>Smith</td> 
    <td>50</td>
  </tr>
  <tr>
    <td>Eve</td>
    <td>Jackson</td> 
    <td>94</td>
  </tr>
</table>

1 个答案:

答案 0 :(得分:1)

使用angularjs无法直接实现,但是角度2+支持它(在服务器上使用nodejs:https://angular.io/guide/universal)。

我有同样的需求,我记得尝试使用在selenium webdriver上运行在服务器上的angularjs来实现你想要的东西,但我找不到一个完整而简单的解决方案。

相反,我复制了我的ng-repeat模板并将它们转换为非常简单的asp.net razor模板,并将我的json模型作为 dynamic ViewModel传递。 我知道它不是angularjs,但它是一个很好的服务器端替代品,你也标记了c#。 示例模板:

@Model dynamic

<h4>@Model.Title</h4>
<table>
  <tr>
    <th>Firstname</th>
    <th>Lastname</th> 
    <th>Age</th>
  </tr>
  @foreach (dynamic x in Model.Students)
  {
  <tr>
    <td>@x.FirstName</td>
    <td>@x.LastName</td>
    <td>@x.Age</td>
  </tr>
  }
</table>

您可以使用 RazorEngine nuget来帮助生成输出:http://antaris.github.io/RazorEngine/