当父指令使用templateUrl时未调用AngularJS子指令
我有点厌倦了数据网格初始化代码,所以我正在尝试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
<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())(范围);
}
}
})