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? для полного кода