我要使用一个ng-click点击获取一段html,这个html里面还有个ng-click事件,我用js找到这段html然后赋值到一个弹层里面,这个html的ng-click事件就无效了,怎么整?
$scope.readmore_maincomment = function(event){
var html = $(event.target).parent(".subcomments").prev().html();
$(".subcomments_detail").find(".subcomment_con").html(html);
};
代码是简写的,就是这样获取的内容,可能方法用错了,把angular与jQuery混用了,谁能告诉我怎么获取这个html内容,然后html里的ng-click还要能生效
angular在启动初期会遍历dom,找出所有在html里绑定的directive进行compile和link后,类似`v-click`这样的指令才会在所在的dom元素上绑定响应事件。如果直接将html字符串插入到dom中angular是没有机会解析这串html里的指令。为了解决这一问题,angular内置的$compile service.
Usage:
inject $compile service
$compile(htmlstring or domelement)(scope)
如果compile htmlstring 最后在将link后的返回插入到dom中
$compile() return a link function which bind the template to a scope
官网文档:
angularjs的思想应该尽量避免对dom的操作,你的需求应该通过其他的方式实现,通过数据的绑定达到你的目标,或者你可以使用ng-template来做。
dom的操作都是在 指令里面的,你要将你当前要操作的dom结构写成指令 ,然后link函数中的参数中有ele可以供你操作,你想要复制的那段html有ngclick 也不会有影响的 一样能在复制之后能生效 。