2015-06-05 59 views
0

我在一个动态创建html的应用程序中工作。我们开始使用angular,现在我们试图使用angular.element()创建html并在其中定义一个控制器。编译通过javascript动态插入的角度控制器?

angular.element("<div ng-controller='myController'/>"); 

的问题是,因为它是创建页面呈现之后(当用户点击某处,例如),插入在HTML不与角工作,就像普通的HTML。我该如何解决它?

+2

'angular.element()'返回jqlite的包装对象。您将不得不使用'$ compile'服务 – Samir

+0

谢谢@Samir是全局角度类可用的$ compile服务吗?像角。$编译?还是应该以某种方式将它包含在创建元素的脚本中?创建元素的脚本不在控制器或指令内... –

+0

不能在全局范围内使用。这是角度服务。你将不得不通过你的控制器注入。 – Samir

回答

0

我用这样的方式:

var template = angular.element(YOU_HTML_IN_STRING); 
var linkFn = $compile(template); 
var element = linkFn($scope); 
angular.element(CSS_SELECTOR).html('').append(element); 

如果您没有访问到$编译。你可以看看这里: how can we use $compile outside a directive in Angularjs