我必须使用transclusion在一个指令中注入内容,该指令应用于页面上的tbody元素。我正在尝试将transclude应用到指令模板的tr元素,但不知何故浏览器现在在tr元素上加倍 - 它必须在转换运行之前自动将每个td列表包装到tr中。我怎样才能防止这种情况发生?
请注意:在这种情况下,我必须将此工作作为表格,因此请不要使用div或其他元素替换表格。
模板:
<td class="drawer" ng-show="showDrawer">
DRAWER PLACEHOLDER
</td>
包括文件:
<tbody ng-repeat="p in ps
drawer
drawer-id="p.ID">
<td class="p"><span>...</span></td>
<td class="p"><span>...</span></td>
...
></tbody>
JS:
drawer.directive('drawer', [function() {
return {
restrict: 'A',
scope: {
drawerId: '=' // pass in player id
},
transclude: true,
templateUrl: openGlobals.paths.live.drawerTemplate,
link: function (scope) {
}
}
}
结果:
<tbody ng-repeat="p in ps
drawer
drawer-id="p.ID">
<tr ng-transclude>
<tr ng-scope>
<td class="p"><span>...</span></td>
<td class="p"><span>...</span></td>
...
</tr>
</tr>
</tbody>
这是怎么发生的?为什么有两个标签互相嵌套?