我想在另一个指令tempalte中添加动态指令。 如您所见,我想在指令模板中添加另一个指令 如何在那里添加那些动态指令
请帮忙
return {
restrict: 'AE',
require :'^awkGrid',
templateUrl: 'views/shutter.html',
link : function(scope, element, attr, controllerInstance){
//Set the header
scope.items = [];
angular.forEach(scope.rowData, function(value, key) {
var obj = {
key : key,
value : value
};
template = <country name="'+value.country+'" id="'+key+'"></country>;
scope.items.push(template);
});
};
//Inside shutter.html file
<div data-ng-repeat="item in items" class="ag-row action-row"
ng-class-odd="'ag-row-even'"
ng-class-even="'ag-row-odd'"
ng-class="{'ag-row-selected':$index == selectedRow}"
ng-click="setClickedRow($index,$event)">
<div class="ag-cell">
{{item}} //Not working ,Prinitng the string
<country name="india" id="-1"></country> //Working
</div>
答案 0 :(得分:0)
您必须重新编译您的指令。在链接功能的末尾添加以下代码:
$compile(element.contents())(scope);
答案在here。
当然,您必须将servis $compile
作为依赖项添加到您的指令中。
答案 1 :(得分:0)
要动态切换指令的整个模板,您必须将元素的html设置为所需的新模板,然后将元素的内容传递到$compile
以将其绑定到$scope
。
element.html('<h1>Dynamic Content</h1>').show();
$compile(element.contents())($scope);
这应该都在相关指令的link
函数中定义。