我必须使用嵌入在指令中注入内容,该指令应用于页面上的 tbody 元素。我正在尝试将 transclude 应用到指令模板的 tr 元素上,但是浏览器现在以某种方式在 tr 元素上加倍 - 它必须在 transclude 运行之前自动将每个 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>
这怎么发生的?为什么有两个标签相互嵌套?