我经历了类似的问题,我想我仍然不明白这应该如何工作。
我有以下指令要修改以允许嵌入:
app.directive('ccWidgetHeader', function() {
var directive = {
link: link,
scope: {
'title': '@',
'subtitle': '@',
'rightText': '@',
'allowCollapse': '@'
},
templateUrl: '/app/layout/widgetheader.html',
restrict: 'A',
};
return directive;
function link(scope, element, attrs, ctrl, trans) {
attrs.$set('class', 'widget-head');
}
});
模板看起来与此类似(还有更多,但为简洁起见,我删除了):
<div class="page-title pull-left">{{title}}</div>
我正在使用的 HTML 是这样的:
<div data-cc-widget-header title="Last 20 Jobs"
allow-collapse="true">
<span>I want the content here included in my template!</span>
</div>
我以为我可以将“transclude:true”添加到指令中,然后像这样修改模板:
<div class="page-title pull-left">{{title}}<<ng-transclude></ng-transclude></div>
这是我想要渲染的内容:
<div data-cc-widget-header="" title="Last 20 Jobs" allow-collapse="true" class="widget-head"><div class="page-title pull-left ng-binding">Last 20 Jobs
<span>I want the content here included in my template! </span>
</div>
当然,这似乎行不通。我能够找到的所有示例都显示了限制为“E”的嵌入。
编辑:它似乎与我正在运行的 Angular 版本(1.2.X)有关。我升级到 1.3.7,它突然开始工作了。