Компиляция интерполяции вручную

У меня есть пользовательская директива и рендеринг этой директивы с помощью 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);
Другие вопросы по тегам