Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
动态编译javascript插入的角度控制器?_Javascript_Jquery_Html_Angularjs - Fatal编程技术网

动态编译javascript插入的角度控制器?

动态编译javascript插入的角度控制器?,javascript,jquery,html,angularjs,Javascript,Jquery,Html,Angularjs,我在一个动态创建html的应用程序中工作。我们开始使用angular,所以现在我们尝试使用angular.element()创建html,并在其中定义一个控制器 angular.element("<div ng-controller='myController'/>"); angular.element(“”); 问题是,由于它是在页面呈现后创建的(例如,当用户单击某个位置时),插入的html与angular不兼容,就像普通html一样。我该怎么解决呢?我用这种方法: var t

我在一个动态创建html的应用程序中工作。我们开始使用angular,所以现在我们尝试使用angular.element()创建html,并在其中定义一个控制器

angular.element("<div ng-controller='myController'/>");
angular.element(“”);
问题是,由于它是在页面呈现后创建的(例如,当用户单击某个位置时),插入的html与angular不兼容,就像普通html一样。我该怎么解决呢?

我用这种方法:

var template = angular.element(YOU_HTML_IN_STRING);
var linkFn = $compile(template);
var element = linkFn($scope);
angular.element(CSS_SELECTOR).html('').append(element); 
如果您没有访问$compile的权限。您可以在这里查看:

angular.element()
返回jqlite的包装器对象。您必须使用
$compile
服务来代替。谢谢,@Samir,$compile服务是否可从全局类获得?像是有角度的。$compile?或者我应该在创建元素的脚本中包含它吗?创建元素的脚本不在控制器或指令内…不,它在全局范围内不可用。这是角度服务。您必须通过控制器进行注入。