[英]$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.