认为我们有一些指令: Directive1,Directive2,......
我想用ng-repeat来获取这些指令名称的数组并创建它们中的每一个。
会起作用吗?
答案 0 :(得分:1)
据我所知,ng-repeat
无法实现。但是,没有必要ng-repeat
方式。您可以在控制器作用域上声明一个数组,并使用$compile
服务来创建指令。
var app = angular.module('plunker', []);
app.controller('MainCtrl', function($scope, $compile) {
$scope.directiveArray = ['a', 'b ', 'c'];
for (var i = 0; i < $scope.directiveArray.length; i++) {
var dirName = $scope.directiveArray[i];
var dirCompiled = $compile('<' + dirName + '></' + dirName + '>')($scope);
angular.element(document.getElementById('holder')).append(dirCompiled);
}
});
app.directive('a', function() {
return {
restrict: 'E',
template: '<div>I\'m a </div>'
}
});
app.directive('b', function() {
return {
restrict: 'E',
template: '<div>I\'m b </div>'
}
});
app.directive('c', function() {
return {
restrict: 'E',
template: '<div>I\'m c </div>'
}
});
HTML:
<body ng-controller="MainCtrl">
<div id="holder"></div>
</body>
<强> Plunker 强>