我要使用一个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 にバインドされているすべてのディレクティブを見つけて、コンパイルしてリンクします。その後、`v-click` のような命令により、応答イベントが配置されている dom 要素にバインドされます。 HTML 文字列を DOM に直接挿入すると、Angular はこの HTML 文字列内の命令を解析できなくなります。この問題を解決するために、angular に組み込まれている $compile サービスを利用します。
使用法:
$compile サービスを挿入します
$compile(htmlstring または domelement)(スコープ)
HTMLstringをコンパイルする場合、最終的にdomへのリンクの後にリターンを挿入します
$compile() は、テンプレートをスコープにバインドするリンク関数を返します
公式ウェブサイトのドキュメント:
angularjs の考え方では、DOM の操作を回避する必要があります。あなたのニーズは他の方法で実現されるべきであり、データバインディングを通じて目標を達成することも、ng-template を使用して達成することもできます。
DOM の操作はすべて命令の中にあり、現在操作したい DOM 構造を命令として記述し、コピーしたい HTML をリンク関数のパラメータに記述します。 ngclick コピー後も同じことが有効になります。