【发布时间】:2014-05-27 09:53:18
【问题描述】:
鉴于我在 AngularDart 的页面上显示了一个字符串。
... <strong>Notes: </strong> {{cmp.selectedStudent.notes}} ...
如何让它显示多行?在我有换行符的字符串中,我希望它们在 html 输出中被编码为 <br /> 字符。
【问题讨论】:
标签: dart angular-dart
鉴于我在 AngularDart 的页面上显示了一个字符串。
... <strong>Notes: </strong> {{cmp.selectedStudent.notes}} ...
如何让它显示多行?在我有换行符的字符串中,我希望它们在 html 输出中被编码为 <br /> 字符。
【问题讨论】:
标签: dart angular-dart
您可以将字符串中的 '\n' 替换为 <br/> 并使用类似于我在此处的答案 How to add a component programatically in Angular.Dart? 中显示的建议的 my-bind-html 指令(由于最近的许多更改,该代码可能有点过时角)
您可以使用ng-repeat 并在您的笔记行上重复,但首先您需要将它们按'\n' 拆分,以便获得一组行。
List<String> _notesList = null;
List<String> get notesList {
if (_notesList==null) _notesList = notes.split("\n").toList(); return _notesList;
}
.
<span ng-repeat="note in cmp.selectedStudent.notesList">{{note}}<br /></span>
【讨论】:
默认情况下,Angular 不会解释 HTML 应答器以避免一些不可预测的行为或其他坏事,但您可以使用
禁用此验证ng-bind-html
官方文档链接:NgHtmlBind
因此您可以直接将 '\n' 字符替换为 'br' html 节点。
所以你可以这样做:
// ...
String getHtmlBrNote() {
return this.notes.replaceAll("\n", "<br />");
}
// ...
在角度之后
... <strong>Notes: </strong> <span ng-bind-html="cmp.selectedStudent.getHtmlBrNote()"></span> ...
会没事的
【讨论】:
<>&...,但为什么它需要一个NodeValidator。也许这已经随着几周前自定义 NodeValidator 的推出而改变了。