我試圖根據指令名稱的配置數組動態呈現指令。這是可能的角?我也希望這些呈現的指令向單親DOM元素,而不是每獲得一個新的包裝中的生活(你將與NG-重複)從父指令或控制器中的指令名稱陣列呈現AngularJS指令
var myApp = angular.module('myApp', []);
myApp.directive('one', function() {
return {
restrict: 'A',
template: '<div>Directive one</div>'
}
});
myApp.directive('two', function() {
return {
restrict: 'A',
template: '<div>Directive two</div>'
}
});
function MyCtrl($scope) {
$scope.directives = ['one', 'two'];
}
<div ng-controller="MyCtrl">
<div ng-repeat="directive in directives">
<div {{directive}}></div>
</div>
</div>
編輯: 自發布此,我我也試過了:
.directive('parentDirective', function() {
return {
restrict: 'A',
replace: true,
link: function (scope, element) {
scope.directives = ['one', 'two'];
for (var i = 0; i < scope.directives.length; i++) {
element.prepend('<div ' + scope.directives[i] + '></div>')
}
}
};
});
<div parent-directive></div>
這樣,來自預定指令的模板就不會被渲染。
而不是用'element.append',你有沒有考慮設置'限制:「 C''並更新元素上的類?這樣可以將指令添加到現有的dom元素或創建新元素時。 – pedalpete