【发布时间】:2013-08-09 23:03:19
【问题描述】:
这是我的指令:
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 元素中。为什么会这样?
顺便说一句,作为一个实验,我尝试在 envtable 中只使用一个嵌入的 p 标签而不是 tr\td 标签,在这种情况下,角度只是将一个 ng-scope 类添加到 p 标签。那么为什么会搞砸这些 tr/td 标签呢?
【问题讨论】:
标签: javascript angularjs angularjs-directive