Опитвам се да използвам директива AngularJS (1.2), за да създам клетки от ред вътре в HTML таблица и не разбирам защо Angular вмъква резултата от директивата като първо дете на „body“, вместо да замени оригиналния елемент на директива?
Ето HTML маркирането:
<body ng-app="myApp" ng-controller="MainCtrl">
<table>
<thead>
<tr>
<th>col1</th>
<th>col2</th>
<th>col3</th>
<th>col4</th>
</tr>
</thead>
<tbody>
<my-directive></my-directive>
</tbody>
</table>
</body>
И директивата:
var app = angular.module('myApp', []);
app.controller('MainCtrl', function($scope) {
$scope.data = ['value1','value2','value3','value4'];
});
app.directive('myDirective', function () {
return {
restrict: "E",
replace: true,
scope:false,
link: function (scope, element) {
var html = angular.element('<tr></tr>');
angular.forEach(scope.data, function(value, index) {
html.append('<td>'+value+'</td>');
});
element.replaceWith(html);
}
};
});
Моля, използвайте връзката Plunker по-долу, за да видите резултата: http://plnkr.co/edit/zc00RIUHWNYW36lY5rgv?p=preview