Как внедрить $ scope в шаблон компиляции?

0

Когда пользователь нажимает кнопку, я хочу загрузить шаблон в 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 ответ

1
Лучший ответ

Вам просто нужно запустить его через службу интерполяции $, поскольку интерполяции происходят после связывания (впрыскивается как $ compile):

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

Посмотрите эту скрипку: https://jsfiddle.net/cwqo58b4/

Ещё вопросы

Сообщество Overcoder
Наверх
Меню