猿问

如何使ng-bind-html编译angularjs代码

如何使ng-bind-html编译angularjs代码

我正在使用angularjs 1.2.0-rc.3。我想动态地将html代码包含到模板中。为此我在控制器中使用:

html = "<div>hello</div>";$scope.unicTabContent = $sce.trustAsHtml(html);

在我得到的模板中:

<div id="unicTab" ng-bind-html="unicTabContent"></div>

它适用于常规的html代码。但是当我尝试放置角度模板时,它没有被解释,它只是包含在页面中。例如,我想包括:

<div ng-controller="formCtrl">
    <div ng-repeat="item in content" ng-init="init()">
    </div></div>

非常感谢


红糖糍粑
浏览 658回答 3
3回答

月关宝盒

这就是我所做的,不知道它是否是角度方式TM,但它的工作原理非常简单;.directive('dynamic',&nbsp;function($compile)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;restrict:&nbsp;'A', &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;replace:&nbsp;true, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;link:&nbsp;function&nbsp;(scope,&nbsp;element,&nbsp;attrs)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scope.$watch(attrs.dynamic,&nbsp;function(html)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$compile(element.html(html).contents())(scope); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;};});所以;<div&nbsp;id="unicTab"&nbsp;dynamic="unicTabContent"></div>编辑:我找到了角度方式,它非常简单。$templateCache.put('unicTabContent',&nbsp;$sce.trustAsHtml(html));<div&nbsp;id="unicTab"&nbsp;ng-include="'unicTabContent'"></div>不需要制作自己的指令或任何东西。但它是一种绑定一次的交易,它不会像自定义指令那样对你的html做出改变。
随时随地看视频慕课网APP
我要回答