angular.js - angular如何获取一段html代码赋值到另一个地方,html里面的ng-click事件还要能生效?
淡淡烟草味
淡淡烟草味 2017-05-15 16:56:19
0
3
652

我要使用一个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还要能生效

淡淡烟草味
淡淡烟草味

Antworte allen(3)
为情所困

angular在启动初期会遍历dom,找出所有在html里绑定的directive进行compile和link后,类似`v-click`这样的指令才会在所在的dom元素上绑定响应事件。如果直接将html字符串插入到dom中angular是没有机会解析这串html里的指令。为了解决这一问题,angular内置的$compile service.

Usage:

  1. inject $compile service

  2. $compile(htmlstring or domelement)(scope)

  3. 如果compile htmlstring 最后在将link后的返回插入到dom中

  • $compile() return a link function which bind the template to a scope

官网文档:

https://docs.angularjs.org/api/ng/service/$compile

仅有的幸福

angularjs的思想应该尽量避免对dom的操作,你的需求应该通过其他的方式实现,通过数据的绑定达到你的目标,或者你可以使用ng-template来做。

过去多啦不再A梦

dom的操作都是在 指令里面的,你要将你当前要操作的dom结构写成指令 ,然后link函数中的参数中有ele可以供你操作,你想要复制的那段html有ngclick 也不会有影响的 一样能在复制之后能生效 。

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage