手动编译插值

时间:2017-11-07 07:10:45

标签: angularjs angularjs-ng-repeat angularjs-interpolate custom-directive

我有一个自定义指令并使用ng-repeat渲染该指令。我需要的是我想在传递给我的自定义指令之前编译插值。

在下面找到plnkr

https://plnkr.co/edit/bjdBSKCFPhgbE2aREupy?p=preview

这里我想使用mycompile指令在此代码<display-id mycompile id={{op.id}}> </display-id>中编译插值。

    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 个答案:

答案 0 :(得分:0)

$interpolateProvider期望string是一个参数,所以你需要的是将你的元素转换为字符串然后再转换回DOM元素,如果你愿意的话 可以使用outerHTML属性来实现:

$interpolate($elm.prop('outerHTML'))($scope);