繁体   English   中英

$compile 异常行为

[英]$compile unusual Behaviour

角度版本:1.3
我正在尝试编译 html 并生成内插的 html。 ng-if代码被注释掉了

html

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

我使用上面的 html 作为 htmlTemplateDom

控制器

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

安慰

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

所以问题是ng-if被注释掉了。 有人帮忙!!!!

据我所知,这正是AngularJS的工作方式。 AngularJS在模板中需要此标记。 您会期望什么?

通过在config禁用调试信息,可以从模板中删除一些注释:

$compileProvider.debugInfoEnabled(false);

此后,几乎所有(但不是全部)标记都将消失,并且不再可以调试Angular应用程序(例如,通过ng-inspector chrome插件)。

@Edit我不确定为什么console.log在评论后剪切内容,但是整个机制运行良好。 检查DOM:

<div id="emailContent">
    <!-- ngIf: true -->
    <div ng-if="true" class="ng-scope">true</div>
    <!-- end ngIf: true -->
</div>

我在$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);
 });

如果要执行它,请看一下这个小提琴

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM