Here is my directive:
myapp.directive('envtable', function () { return { restrict: 'E', replace: true, transclude: true, template: '<table class="table" ng-transclude></table>' }; });
This is how I use it in html (using bootstrap css)
<envtable> <tr> <td>OS</td> <td>{{env.osName}}</td> </tr> <tr> <td>OS Version</td> <td>{{env.osVersion}}</td> </tr> </envtable>
However, the generated code looks like this: chrome:
<table class="table" ng-transclude=""><span class="ng-scope ng-binding"> OS Windows 8 OS Version 6.2 </span></table>
As you can see, Angular simply ignored all my tr/td tags and put the content in a single span element. Why is this happening?
Btw, as an experiment, I tried to use only the transcluded p tags in envtable instead of the tr\td tags, in which case Angular just adds the ng-scope class to the p tag. So why does this wrap these tr / td tags?
javascript angularjs angularjs-directive
pdeva
source share