如何在表tr标签上使用transclude

时间:2015-03-19 15:40:43

标签: angularjs angularjs-directive html-table angularjs-ng-transclude

我必须使用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>

这是怎么发生的?为什么有两个标签互相嵌套?

0 个答案:

没有答案