您的位置:首页技术文章
文章详情页

angular.js - angular如何获取一段html代码赋值到另一个地方,html里面的ng-click事件还要能生效?

【字号: 日期:2024-03-19 10:15:27浏览:73作者:猪猪

问题描述

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

问题解答

回答1:

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

官网文档:

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

回答2:

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

回答3:

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

标签: HTML