指令内部的模板
Template inside of a directive
我有一个奇怪的情况,我需要把一个模板内的模板在我的指令。这样做的原因是AngularJS不会读取属性内部的ng-repeat代码。
在理想情况下,我的代码应该是这样的:
<div ng-repeat="phone in phones">
<button popover="<div ng-repeat='friend in phone.friends'>{{friend.name}}</div>"></button>
</div>
不幸的是,由于popover属性周围的引号,这不起作用。这让我掉进了一个很深的兔子洞,我试图把一个模板放在一个模板里面,就像这个plunker:
http://plnkr.co/edit/ZA1uA1UOlU3cCH2mbE0X?p =
预览HTML:<div my-popover></div>
Javascript: angularApp.directive('myPopover', function( $compile) {
var getTemplate = function()
{
var scope = {title: "other title"};
var template = "<div> test template. title: {{title}}</div> ";
return $compile(template)(scope);
}
return {
restrict: 'A',
template: '<button class="btn btn-default" popover="{{content}}" popover-title="title">template</button>',
link: function(scope) {
scope.content = getTemplate();
}
};
})
不幸的是,这不起作用,因为AngularJs抱怨循环引用。请帮助!(这花了我一整天的时间)
我不确定我是否完全理解你想要实现的目标,但从来看你可能想要检查transclude
选项的指令。
From the docs:
使用translude: true当你想创建一个包装指令任意内容。
如果你使用transclude,你可以将弹出窗口的内容存储在按钮中,并使用ng-transclude指令将这些内容"转发"到你想要的地方。
你的代码看起来像这样:
<button>
<div ng-repeat='friend in phone.friends'>{{friend.name}}</div>
</button>
你可以在指令指南中看到一些实际的例子。
相关文章:
- AngularJs指令,该指令创建内部有数据对象的新指令
- 角度控制器功能不;在指令内部调用时,似乎无法始终如一地工作
- angularJS获取指令的内部元素
- 触发CSS转换,使用来自Javascript的样式,从内部指令完成回调
- 如何在angularjs中对指令内部的JSON数组使用过滤器
- 外部 AngularJS 指令无法正确构建内部指令
- 角度 ng 重复内部指令视图
- 从内部指令与主指令的通信 - 调用函数
- 角度ng-repeat不更新,当使用jQuery内部指令调用Angular 方法时
- 函数内部指令不显示客户端上的数据
- UI-select2 内部指令未更新控制器模型
- $scope$注意内部指令在应该调用的时候没有被调用
- AngularJS内部指令(post)链接函数在外部指令's之后调用
- 动态ui-sref内部指令
- 使用anguarJS内部指令height返回0
- Angular:变量模板内部指令
- 如何绑定到多个在md-select内部指令
- 如何访问指令的内部指令
- AngularJs: document.body.onfocus内部指令控制器
- 在嵌套指令方案中从内部指令(模板内部)传递属性