AngularJS动态指令加载

时间:2014-07-18 13:03:13

标签: angularjs angularjs-directive

我正在使用AngularJS,目前我正在加载基于变量的包含:

<div ng-include="'app/views/' + field.fieldType + '.tpl.html'"></div>

是否可以类似地加载指令(键入模板中的变量名)?类似的东西:

<div my-directive-{{field.fieldType}} />

谢谢!

2 个答案:

答案 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);

    }
  }
});

来自Insert directive programmatically angular

的信息

答案 1 :(得分:0)

这是可能的,但我会推荐以下(作为Angular方式):

<div my-directive field-type="field.fieldType" />

重新编制指令以达到同样的目的的危险并不值得IMO承担风险/努力。