これが私の指示です:
myapp.directive('envtable', function () {
return {
restrict: 'E',
replace: true,
transclude: true,
template: '<table class="table" ng-transclude></table>'
};
});
これは私がhtmlでそれを使用する方法です(ブートストラップ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
タグを無視し、コンテンツを 1 つのスパン要素に配置しました。なぜこうなった?
ところで、実験として、タグp
の代わりに envtable でトランスクルードされたタグだけを使用してみました。その場合、angularはタグにクラスをtr\td
追加するだけです。では、なぜこれらの tr/td タグを台無しにするのでしょうか?ng-scope
p