是否可以将范围保持在angular.js中,并修改模板?

时间:2015-08-10 16:27:24

标签: javascript angularjs template-engine

我完全陷入了我的指令:这是代码的一部分:

 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上了吗?

谢谢你们

1 个答案:

答案 0 :(得分:0)

我终于成功地做到了!

实际上,如果你想要附加所有事件和范围,你就必须等待编译事件,这是用$ timeout(fn,0)完成的; 我知道,这很恶心,但工作得很好!!!