我在ng-repeat指令中进行翻译时遇到问题。 Angular在模板中找不到.transclude元素,因此不会发生替换。我相信这是因为ng-repeat在转换时删除了.transclude。我想知道如何在ng-repeat获取占位符之前替换或如何以任何其他方式解决此问题。
旁注:如果我改用ng-transclude指令,那么代码就是 按预期工作,但后来我必须使用$ parent {{$ parent.item.name}}来访问我不喜欢的值。
以下是我的代码的缩小版本:
HTML
<div mydir="items">
{{item.name}}
</div>
template.html
<div ng-repeat="item in items">
<div class="transclude"></div>
</div>
指令
app.directive("mydir" , function(){
return {
templateUrl : "template.html",
transclude : true,
scope : {
items: "=mydir"
},
link : function($scope , $element , attrs , $ctrl , $transclude){
$transclude(function($content){
$element.find(".transclude").replaceWith($content);
});
},
};
})
编译前的预期结果
<div mydir="items">
<div ng-repeat="item in items">
{{item.name}}
</div>
</div>
答案 0 :(得分:0)
我认为这是一个可以让你到达目的地的选项。基本上,它抓取你的html指令MkDir(List.RootFolder.PathName+'\New Folder');
List.Update;
List.ItemIndex:=0;
List.HideSelection:=True;
while List.ItemIndex<List.Items.Count-1 do
begin
// Find the New Folder
if List.SelectedFolder.PathName=(List.RootFolder.PathName+ '\New Folder') then
begin
//Set the Folder in Edit mode & exit the loop
List.Items[List.ItemIndex].EditCaption;
Exit;
end
else
//Inc the Index
List.ItemIndex := List.ItemIndex+1;
end;
List.HideSelection:=False;
的内容,并在指令的编译函数中构建一个动态模板。
{{ item.name }}
这是demo。