我添加了一些HTML内容,在我的NgComponent中添加了setInnerHtml()。
日志显示,该指令已实例化,但未评估{{ctrl.xxx}}
表达式。
为了设置HTML,我使用带有自定义NodeValidator
的指令派生形式ng-bind-html和以下value
方法。
set value(value) {
_element.setInnerHtml((value == null ? '' : value.toString()),
validator: validator);
_log.finest(value);
if(value != null) {
BlockFactory template = _compiler(_element.children, _directiveMap);
Block block = template.bind(_injector)(_scope);
}
}
我在插入的HTML中也有一些<input type='text' ng-model='ctrl.someValue'>
。
调试器显示ng-model被实例化和
getter ctrl.someValue
被称为
但input元素不显示返回值。
当我将生成的HTML静态插入template
时,一切正常。
如何动态插入由Angular完全处理的HTML。
答案 0 :(得分:1)
修改强>
包http://pub.dartlang.org/packages/bwu_angular包含此装饰器/指令bwu-safe-html
<强> ------ 强>
我找到了解决方案here
@NgOneWay('ac-bind-html')
set value(value) {
if(value == null) {
_element.nodes.clear();
return;
}
_element.setInnerHtml((value == null ? '' : value.toString()),
validator: validator);
_log.finest(value);
if(value != null) {
_compiler(_element.childNodes, _directiveMap)(_injector, _element.childNodes);
}
}
另请参阅How to add a component programatically in Angular.Dart?关于完整代码
的答案