我正在使用AngularJS,目前我正在加载基于变量的包含:
<div ng-include="'app/views/' + field.fieldType + '.tpl.html'"></div>
是否可以类似地加载指令(键入模板中的变量名)?类似的东西:
<div my-directive-{{field.fieldType}} />
谢谢!
答案 0 :(得分:2)
当然,你可以做这样的事情。
.directive('myDirective',function(){
return {
link: function(scope,elem,attrs) {
var directiveName = attrs['my-directive'];
var directive = angular.element(document.createElement(directiveName));
var el = $compile( directive )( scope );
angular.element(document.body).append(directive);
}
}
});
的信息
答案 1 :(得分:0)
这是可能的,但我会推荐以下(作为Angular方式):
<div my-directive field-type="field.fieldType" />
重新编制指令以达到同样的目的的危险并不值得IMO承担风险/努力。