setInnerHtml не оценивает усы

Я добавляю некоторый контент HTML, добавляя setInnerHtml() внутри моего NgComponent.

Ведение журнала показывает, что директивы создаются, но {{ctrl.xxx}} выражения не оцениваются.

Для настройки HTML я использую директиву производную форму ng-bind-html с пользовательским NodeValidator и следующее 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);
    }
  }

У меня есть также некоторые <input type='text' ng-model='ctrl.someValue'> во вставленном HTML. Отладчик показывает, что ng-модель создается и
добытчик ctrl.someValue вызывается
но элемент input не показывает возвращаемое значение.

Когда я вставляю сгенерированный HTML статически как template все работает отлично.

Как получить динамически вставленный HTML полностью обработанный Angular.

1 ответ

Решение

РЕДАКТИРОВАТЬ

Пакет http://pub.dartlang.org/packages/bwu_angular содержит этот декоратор / директиву в виде bwu-safe-html

------

Я нашел решение здесь

  @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);
    }
  }

см. также мой ответ на Как добавить компонент программно в Angular.Dart? для полного кода

Другие вопросы по тегам