【发布时间】:2014-04-06 07:33:12
【问题描述】:
我想将指令元素的内容转换为<script> 元素。
在以下指令中,当模板包含如下脚本标记时,嵌入不起作用:
app.directive('mdl', function(){
return {
restrict: 'EA'
, replace: true
, transclude: true
, template: '<script id="modal.html" > <div ng-transclude> </div> </script>'
}
})
指令被调用的地方如下:
<mdlbody> <div>testing modal body</div> </mdlbody>
生成的<main> 元素为空。但是,当 <script> 标记像这样从模板字符串中删除时,transclude 会按预期工作,
template: '<div ng-transclude> </div>'
或template: <div> <div ng-transclude> </div> <div>
只要模板字符串没有包含在 <script> 中,transclude 就可以工作。
当 ng-transclude 直接放在 <script ng-transclude> 上时,Transclude 也可以工作。但是我想在 <script> 元素内更深层次的嵌套中插入嵌入。
为什么会这样?如何让 transclude 使用模板字符串中的 <script> 元素? (以便指令的内容被嵌入到<script> 元素中)
P.S:为了进一步澄清,我试图将 嵌入 script 元素,因此最终结果应该是<script><main> transcluded content</main></script>
(不是<main> transcluded content</main>)。
【问题讨论】:
-
你有没有想过这个问题?我也有同样的问题!
标签: angularjs angularjs-directive