是否可以将范围保持在angular.js,并修改模板?
Is it possible to keep the scope in angular.js, and to modify the template?
我完全坚持我的指令:这是代码的一部分:
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);
我尝试检索模板的内容,将其附加到布局,然后编译。
通过这样做,我失去了所有关联的范围。 (即:点击 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?
谢谢大家
我终于成功了!!!
事实上,如果您想要附加所有事件和范围,则必须等待编译事件,这是通过 $timeout(fn,0); 完成的;
恶心,我知道,但工作正常!!!
我完全坚持我的指令:这是代码的一部分:
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);
我尝试检索模板的内容,将其附加到布局,然后编译。
通过这样做,我失去了所有关联的范围。 (即:点击 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?
谢谢大家
我终于成功了!!!
事实上,如果您想要附加所有事件和范围,则必须等待编译事件,这是通过 $timeout(fn,0); 完成的; 恶心,我知道,但工作正常!!!