$ compile необычное поведение - PullRequest
0 голосов
/ 21 сентября 2018

Угловая версия: 1.3
Я пытаюсь скомпилировать HTML и сгенерировать интерполированный HTML.код ng-if комментируется

html

<div ng-if="true">true</div>

Я использую приведенный выше html в качестве htmlTemplateDom

Controller

var htmlCompiledDom = $compile(htmlTemplateDom)($scope);
var div = angular.element("div#emailContent").append(htmlCompiledDom); 
console.log(div.html());

Консоль

<!-- ng-if:true -->

Итак, проблема в ng-if комментируется.Кто-нибудь помогите !!!!

Ответы [ 2 ]

0 голосов
/ 21 сентября 2018

Я не вижу проблем на $compile.

. Этот пример работает так, как ожидалось, проверьте, делаете ли вы что-то другое.

HTML:

<div ng-app="app" ng-controller="controller">
    <div id="compile">
    </div>
</div>

Javascript:

angular.module('app', [])
.controller('controller', function ($scope, $compile) {
    var template = '<div ng-if="true">true</div>';
    var content = $compile(template)($scope);
    angular.element('div#compile').append(content);
 });

Если вы хотите выполнить его, взгляните на эту скрипку .

0 голосов
/ 21 сентября 2018

Насколько я знаю, именно так работает AngularJS.AngularJS нужны эти маркеры в шаблоне.Что вы ожидаете вместо этого?

Некоторые из этих комментариев можно удалить из шаблона, отключив отладочную информацию в config:

$compileProvider.debugInfoEnabled(false);

После этого почти все (но не все) маркеры будутисчезнуть и отладить Angular-приложение больше не будет возможно (например, с помощью ng-inspector chrome addon).

@ Edit Я не уверен, почему console.log обрезка контента после комментария, но весь механизм работает хорошо.Проверка DOM:

<div id="emailContent">
    <!-- ngIf: true -->
    <div ng-if="true" class="ng-scope">true</div>
    <!-- end ngIf: true -->
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...