这是我的指令:
myapp.directive('envtable', function () {
return {
restrict: 'E',
replace: true,
transclude: true,
template: '<table class="table" ng-transclude></table>'
};
});
这就是我在 html 中使用它的方式(使用 bootstrap css)
<envtable>
<tr>
<td>OS</td>
<td>{{env.osName}}</td>
</tr>
<tr>
<td>OS Version</td>
<td>{{env.osVersion}}</td>
</tr>
</envtable>
但是,生成的代码在 chrome 中如下所示:
<table class="table" ng-transclude=""><span class="ng-scope ng-binding">
OS
Windows 8
OS Version
6.2
</span></table>
如您所见,Angular 只是忽略了我的所有tr/td
标签,并将内容放在单个 span 元素中。为什么会这样?
顺便说一句,作为一个实验,我尝试p
在 envtable 中只使用一个嵌入标签而不是tr\td
标签,在这种情况下,角度只是ng-scope
向标签添加一个类p
。那么为什么它搞砸了这些 tr/td 标签呢?