Angular Js重用指令

时间:2015-10-13 18:48:25

标签: angularjs angularjs-directive

我想知道我是否可以制作一个Angular Js指令然后我可以在运行时再次使用它

这是一个简单的例子

app.directive('w34Directive',function(){
return{
    template : "<p>test</p>"
  }
}) 

这是HTML

<div w34-directive></div>

但是如果我有一个带有ng-click功能的按钮,它在控制器中执行以下功能

var elem = document.querySelector('.myContainer');
angular.element(elem).append("<div w34-directive></div>");

这意味着将生成一个新的DOM使用该指令,但实际上该指令会在页面加载时触发一次,因此当我添加新的DOM时,它只添加一个空的div标签,而不包含该指令的模板。案例:

<p>test</p>

关于如何克服这个问题的任何想法?

1 个答案:

答案 0 :(得分:1)

是的,你可以使用:

<强> $compile

例如:

 var el = $compile( "<div w34-directive></div>" )( $scope );
 angular.element(elem).append( el );