Ответ 1
Это немного сложно, потому что ng-bind-html
просто вставляет простой старый html и не документирует его компиляцию (поэтому любые директивы в html не будут обрабатываться с помощью angular.
Трюк заключается в поиске способа компиляции всякий раз, когда изменяется шаблон. Например, вы можете создать директиву, которая делает это. Это выглядело бы так:
.directive('compileTemplate', function($compile, $parse){
return {
link: function(scope, element, attr){
var parsed = $parse(attr.ngBindHtml);
function getStringValue() { return (parsed(scope) || '').toString(); }
//Recompile if the template changes
scope.$watch(getStringValue, function() {
$compile(element, null, -9999)(scope); //The -9999 makes it skip directives so that we do not recompile ourselves
});
}
}
});
Затем вы можете использовать его следующим образом:
<p ng-bind-html="myHTML" compile-template></p>
См. рабочий пример здесь: