我完全陷入了我的指令:这是代码的一部分:
var $template = angular.element("<div></div>");
$template.append($compile(template)(scope));
$template.find('block').html($block.html());
$element.replaceWith($template.html());
$compile($element.contents())(scope);
我尝试检索模板的内容,使其附加到布局,然后进行编译。
通过这样做,我放松了每个相关的范围。 (I.E.:点击a不起作用)
是否可以保留已编译模板的关联范围?如果没有,我还有什么选择?
非常感谢,
雷米
修改 请参阅注释,了解plunker中的示例, 再次感谢
修改
给定的指令应该能够执行以下操作: view.html:
<layout extends='/layout.html'>
<block name="content">TOTO</block>
<block name="content2">TOTO2</block>
</layout>
layout.html:
<navbar></navbar>
<block name="content"></block>
<block name="content2"></block>
<footer></footer>
输出:
<navbar></navbar>
<block name="content">TOTO</block>
<block name="content2">TOTO2</block>
<footer></footer>
这有什么意义吗?
修改
是否可以执行以下操作: $ element.replaceWith($模板); 知道模板已经在DOM上了吗?
谢谢你们
答案 0 :(得分:0)
我终于成功地做到了!
实际上,如果你想要附加所有事件和范围,你就必须等待编译事件,这是用$ timeout(fn,0)完成的; 我知道,这很恶心,但工作得很好!!!