如何在模板编译中注入$ scope?

时间:2015-07-01 15:28:12

标签: angularjs

当用户点击一个按钮时,我想在一个html文件中加载一个模板并用范围编译它并检索结果以将其注入jsPDF。

目前,我成功加载模板并将编译后的结果注入jsPDF,但动态数据未被替换。

我该怎么做?

用户点击按钮时启动的功能:

$scope.getPDF = function () {
    var templateUrl = $sce.getTrustedResourceUrl('views/customerDashboard/invoice.html');

    $templateRequest(templateUrl).then(function(template) {
        $scope.test = 'Hello world!';

        var result = $compile(template)($scope);
        invoice_generator(result[0].innerHTML);
    }, function() {
        // An error has occurred
    });
};

invoice.html文件:

<div>
    <p>{{ test }}</p>
</div>

1 个答案:

答案 0 :(得分:1)

你必须通过$ interpolate服务运行它,因为插值在链接后发生(像$ compile一样注入):

invoice_generator($interpolate(result[0].innerHTML)(scope));

看看这个小提琴:https://jsfiddle.net/cwqo58b4/