我正在修改其内部html的指令。到目前为止的代码:
.directive('autotranslate', function($interpolate) { return function(scope, element, attr) { var html = element.html(); debugger; html = html.replace(/\[\[(\w+)\]\]/g, function(_, text) { return '<span translate="' + text + '"></span>'; }); element.html(html); } })
它起作用,除了内部html不按angular求值。我想触发element的子树重估。有没有办法做到这一点?
element
谢谢 :)
你必须$compile像你的内部html一样
$compile
.directive('autotranslate', function($interpolate, $compile) { return function(scope, element, attr) { var html = element.html(); debugger; html = html.replace(/\[\[(\w+)\]\]/g, function(_, text) { return '<span translate="' + text + '"></span>'; }); element.html(html); $compile(element.contents())(scope); //<---- recompilation } })