动态重新编译角度指令

http://jsfiddle.net/RW46a/2/


我的应用程序使用外部依赖项,jQuery将HTML代码直接添加到DOM( 叹气 ),就像小提琴中描述的那样。

我希望能够对一些动态添加的代码进行角度化,例如将ng-click指令添加到附加到“mycontent”div的新按钮,请参阅上面的注释。 以角度友好的方式做到这一点的最佳方法是什么? 我试图利用$ compile但很快就变成了hacky。

谢谢!

这个小提琴显示了实现你所尝试的许多方法之一。 现在,我不是说这对你的情况是正确的。 但是,如果没有更多信息,很难确切地知道您要实现的目标。

通常使用angular实现“动态”DOM操作的方法与使用$compile无关。 我希望我给了你一个主意。

基本上,你可以使用ng-show作为第一个元素,然后使用ng-repeat作为其余元素:

JS:

 var app = angular.module('myApp', []); function MyController($scope) { $scope.click = function() { alert('Clicked'); }; $scope.add = function() { $scope.contentCollection.push(1); } $scope.contentCollection = []; } 

HTML:

 

我想你想用ng-include将代码片段添加到DOM中。 这将在加载html之前编译角度元素,因此您可以使用ng-click等指令。

请注意,这将创建一个新的子范围,因此您无法直接访问控制器的范围。