在这个文档:http://docs.angularjs.org/guide/directive中,它说有一个指令的replace
配置:
template -用HTML的内容替换当前元素。替换过程将所有属性/类从旧元素迁移到新元素。有关更多信息,请参阅下面的创建组件部分。
javascript代码
app.directive('myd1', function(){
return {
template: '<span>directive template1</span>',
replace: true
}
});
app.directive('myd2', function(){
return {
template: '<span>directive template2</span>',
replace: false
}
});
html代码
<div myd1>
original content should be replaced
</div>
<div myd2>
original content should NOT be replaced
</div>
但最终的页面如下所示:
directive template1
directive template2
看起来replace
不工作了。我错过什么了吗?
发布于 2013-03-08 11:49:41
您与transclude: true
混淆了,它会附加内部内容。
replace: true
意味着指令模板的内容将替换声明该指令的元素,在本例中为<div myd1>
标记。
http://plnkr.co/edit/k9qSx15fhSZRMwgAIMP4?p=preview
例如,没有 replace:true
的
<div myd1><span class="replaced" myd1="">directive template1</span></div>
和带有 replace:true
的
<span class="replaced" myd1="">directive template1</span>
正如您在后一个示例中看到的,div标记确实被替换了。
发布于 2013-03-08 11:51:28
正如文档所述,'replace‘确定当前元素是否被指令替换。另一个选择是,它是否基本上是作为一个孩子添加到的。如果您查看plnkr的源代码,请注意,对于第二个指令,其中replace为false,div标记仍然在那里。对于第一个指令,它不是。
第一个结果:
<span myd1="">directive template1</span>
第二个结果:
<div myd2=""><span>directive template2</span></div>
发布于 2014-06-06 14:42:43
替换True | False (默认)
效应
1. Replace the directive element.
依赖关系:
1. When replace: true, the template or templateUrl must be required.
https://stackoverflow.com/questions/15285635
复制相似问题