您的位置:首頁技術文章
文章詳情頁

angular.js - angular如何獲取一段html代碼賦值到另一個地方,html里面的ng-click事件還要能生效?

瀏覽:113日期:2024-03-19 10:15:27

問題描述

我要使用一個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
国产综合久久一区二区三区