如何在ng-click后从控制器注入指令?

时间:2016-02-21 21:46:57

标签: angularjs angularjs-directive

我只是在点击

后尝试注入指令

我写了这个函数:

控制器:

$scope.test = function(event){
  event.currentTarget.setAttributeNode( document.createAttribute('my-directive') );
}

HTML:

<md-button class="md-fab md-primary" ng-click="test($event)"> ... </md-button>

我的功能有效,点击后,我在DOM中看到:

<md-button class="md-fab md-primary" ng-click="test($event)" my-directive> ... </md-button>

但我的指示仍无效。

(我的指令只有一个简单的警告)

我意识到我应该使用$compile让它发挥作用

但我不知道如何

2 个答案:

答案 0 :(得分:2)

虽然您可以在单击后使用p添加指令,但更好的方法是最初添加指令并让它响应click事件。

例如:

$compile

答案 1 :(得分:1)

您必须使用控制器的范围进行编译。

event.currentTarget.setAttributeNode(document.createAttribute('my-directive'));
$compile(event.currentTarget)($scope); // Compile using the scope