setInnerHtml不评估Mustache

时间:2014-02-13 14:26:31

标签: dart angular-dart

我添加了一些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。

1 个答案:

答案 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?关于完整代码

的答案