当父指令使用templateUrl时未调用AngularJS子指令

当父指令使用templateUrl时未调用AngularJS子指令,angularjs,angularjs-directive,Angularjs,Angularjs Directive,我有点厌倦了数据网格初始化代码,所以我正在尝试AngularJS的新功能。我希望以如下方式指定我的数据网格内联: <grid src="http://my/web/service" page-size="10"> <column name="one" label="My First Column" /> <column name="two" label="My Second Column" /> <column name="thr

我有点厌倦了数据网格初始化代码,所以我正在尝试AngularJS的新功能。我希望以如下方式指定我的数据网格内联:

<grid src="http://my/web/service" page-size="10">
    <column name="one" label="My First Column" />
    <column name="two" label="My Second Column" />
    <column name="three" label="My Last Column">
        <value id="true" label="Yay" />
        <value id="false" label="Nay" />
    <column>
</grid>

基本上,我试图用简单的xml(非js)语义来配置网格,而不是笨拙的初始值设定项。为此,我创建了三个指令,最外层的指令也有一个模板,用于显示网格

问题是:为外部元素配置模板时,内部元素没有链接(这是网格配置所必需的)。我也不想排除内在因素

问题是:如何访问网格元素的原始内容?模板元素/元素实例的内容都是模板的内容


您可以在

检查我的代码。您不能使用指令定义对象的
模板
模板URL
属性,因为它会覆盖元素具有的任何内容

您需要自己添加模板

.directive("grid", function(){
   return {
      //...
      link: function(scope, element){
         // this assumes that your child directives have registered themselves and 
         // are no longer needed
         element.empty();
         var templateUrl = "grid.html";
         element.append("<div ng-include='\"" + templateUrl + "\"'></div>");
         $compile(element.contents())(scope);
      }
   }
})
指令(“网格”,函数(){ 返回{ //... 链接:功能(范围、元素){ //这假设您的子指令已经注册,并且 //不再需要了 元素。empty(); var templateUrl=“grid.html”; 元素。追加(“”); $compile(element.contents())(范围); } } })