角度转换

时间:2016-03-07 19:41:07

标签: angularjs transclusion

请参阅此plnkr

https://plnkr.co/edit/theggRtJlbFj1H4zVUKU?p=preview

使用$ compile服务,我需要将dirC嵌套在dirB中。 输出应为

DirB
DirC 

我认为这是错误,因为dirC指令和控制器从未被解雇,所以Angular组织说要使用翻译。

好的,所以我使用transclusion和dirC,dirB永远不会添加到DOM。

我错过了什么?

1 个答案:

答案 0 :(得分:1)

指令C包含在指令B中。但两个模板中唯一可见的文本位于具有指令ng-transclude的div内。因此,文本内容被替换为HTML:在<dir-b>的情况下指令C,在<dir-c>的情况下没有任何内容。

以下是使用固定模板的示例,向您展示它可以正常工作:https://plnkr.co/edit/FRtMA3h0Caredc4staW8?p=preview

与ng-view类似,ng-transclude是一个占位符,表示:用指令体内的元素替换该元素的内容。