Компиляция интерполяции вручную
У меня есть пользовательская директива и рендеринг этой директивы с помощью ng-repeat. мне нужно скомпилировать интерполяцию перед тем, как перейти к моей пользовательской директиве.
Найти плнкр ниже
https://plnkr.co/edit/bjdBSKCFPhgbE2aREupy?p=preview
Здесь я хочу скомпилировать интерполяцию в этом коде <display-id mycompile id={{op.id}}> </display-id>
используя директиву mycompile.
app.directive('mycompile', function ($compile, $interpolate) {
return {
restrict: 'EA',
replace: true,
compile: function ($scope, $elm, $attrs) {
return {
pre: function ($scope, $elm, $attrs) {
$interpolate($elm[0])($scope);
}
}
}
}
})
1 ответ
$interpolateProvider ожидает, что строка является аргументом, поэтому вам нужно преобразовать ваш элемент в строку, а затем, если хотите, вернуться в элемент DOM, этого можно достичь с помощью outerHTML
свойство вроде так:
$interpolate($elm.prop('outerHTML'))($scope);