我不明白你想用什麼來實現,但想提供一個解決方案,你可以建立。
聲明你的指令(注意是複姓元素名稱):
<div mytable api="data">
<div col="ID"></div>
<div col="NAME"></div>
</div>
現在定義指令mytable
爲:
var myApp = angular.module('myApp',[]);
myApp.run(function($rootScope) {
$rootScope.data = [{
id: 1,
name: 'One'
}, {
id: 2,
name: 'Two'
}];
});
myApp.directive('mytable', function() {
return {
restrict: 'AE',
transclude: true,
template:
'<table>\
<thead></thead>\
<tbody>\
<tr ng-repeat="d in data">\
<td ng-bind="d.id"></td>\
<td ng-bind="d.name"></td>\
</tr>\
</tbody>\
</table>',
controller: function($scope, $element, $attrs) {
$scope.data = $scope.$eval($attrs.api);
},
link: function(scope, element, attrs, NullController, $transcludeFn) {
$transcludeFn(function(tElement) {
var headHTML = '<tr>';
for (var i = 0; i < tElement.length; i++) {
if (tElement[i].nodeType === 1) {
headHTML+= '<td>' + angular.element(tElement[i]).attr('col') + '</td>';
}
}
headHTML+= '</tr>';
element.find('thead').html(headHTML);
});
}
};
});
新演示:http://jsfiddle.net/codef0rmer/aa18tuzf/
舊演示:http://jsfiddle.net/codef0rmer/yy4rc49L/
非常感謝,但我爲paren使用templateUrl t指令 – 2014-10-19 08:51:16
我想要做的是爲表製作一個templateUrl,它將像levelOne和levelOne內我會給levelTwo標籤,這基本上是列的名稱,以便我可以先獲取列名稱比將使用列在levelOne對於我在HTML模板 – 2014-10-19 08:56:53
中製作的表格,你將如何基本上在HTML中使用這些指令?這兩個指令的模板會是什麼樣子? – codef0rmer 2014-10-19 11:57:09