参见英文答案 >
How can I bind a text which contains url as html 1个
我的同事Patrick&我目前正在将自动完成组件从Web UI转换为Polymer.dart.在Web UI中,我们为自动完成提供了一个HTML呈现列表,以便为程序员提供设置结果样式的机会.根据输入值,我们过滤了列表并显示了匹配结果.
您建议在Polymer.dart中实现相同的行为?我们应该以完全不同的方式处理这个吗?
旧的Web UI代码:
<template iterate="entry in filteredEntries">
<li class="b-autocomplete-results-li">{{ entry.sanitizedHtml }}</li>
</template>
一个条目的类:
class AutocompleteEntry {
final String id;
final String searchableText;
final Element _element;
AutocompleteEntry(this.id, this.searchableText, this._element) {
// remove the data-id and data-text since we don't need them in the html
_element.dataset.remove('text');
_element.dataset.remove('id');
}
get sanitizedHtml {
var validator = new NodeValidatorBuilder()..allowHtml5();
var documentFragment = document.body.createFragment(_element.outerHtml, validator: validator);
return documentFragment;
}
}
最佳答案 更新
Dart Polymer 1.0的即用型元素是bwu-bind-html
不,没有.这是故意的,因为它容易发生XSS攻击.
你可以做的是使用像< safe-html>这样的元素.代替.
我对这个问题HTML Tags Within Internationalized Strings In Polymer.dart的回答显示了完整的源代码.