目前我构建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>
答案 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/