2014-12-23 134 views
0

我與角指令工作,看起來像這樣:角指令兒童沒有父母transclude

<parent> 
    <children></children> 
    <children></children> 
    <children></children> 
</parent> 

家長指令有一個

template: return "<div><ul></ul><div ng-transclude></div></div>" 

和孩子的指令會是NG-transclude DIV中。

我最終的HTML結構

<newParent> 
    <div ng-transclude> 
     <child></child> 
     <child></child> 
     <child></child> 
    </div> 
</newParent> 

我不知道是否有可能使新的兒童是新的母公司的直接子刪除該NG-transclude股利。 (我有更多的孩子,一個隨機數> 1)。

我必須這樣做才能匹配現有的模板,因此我無法更改其結構。

我其實沒有小提琴,如果你需要更多的信息就問。謝謝!

+0

你不能只在父模板中使用''而不是'transcludde'嗎? – charlietfl

回答

0

您可以將自己的內容,而無需使用ng-transclude,使用transclude功能:

app.directive("parent", function($compile) { 
    return { 
    restrict: "EA", 
    transclude: true, 
    link: function(scope, element, attrs, ctrls, $transclude) { 

     $transclude(function(clone, scope) { 
     element.append(clone); 
     }); 
    } 
    }; 
}); 

這裏有更多有關Transclusion

如果沒有模板,則會將該橫切元素添加爲指令的子元素。使用該模板時,您需要自己正確放置(例如,在<ul>之後插入<div>)內容。