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

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

淡淡烟草味
淡淡烟草味

全員に返信(3)
为情所困

Angular は起動の開始時に dom を走査し、html にバインドされているすべてのディレクティブを見つけて、コンパイルしてリンクします。その後、`v-click` のような命令により、応答イベントが配置されている dom 要素にバインドされます。 HTML 文字列を DOM に直接挿入すると、Angular はこの HTML 文字列内の命令を解析できなくなります。この問題を解決するために、angular に組み込まれている $compile サービスを利用します。

使用法:

  1. $compile サービスを挿入します

  2. $compile(htmlstring または domelement)(スコープ)

  3. HTMLstringをコンパイルする場合、最終的にdomへのリンクの後にリターンを挿入します

  • $compile() は、テンプレートをスコープにバインドするリンク関数を返します

公式ウェブサイトのドキュメント:

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

いいねを押す +0
仅有的幸福

angularjs の考え方では、DOM の操作を回避する必要があります。あなたのニーズは他の方法で実現されるべきであり、データバインディングを通じて目標を達成することも、ng-template を使用して達成することもできます。

いいねを押す +0
过去多啦不再A梦

DOM の操作はすべて命令の中にあり、現在操作したい DOM 構造を命令として記述し、コピーしたい HTML をリンク関数のパラメータに記述します。 ngclick コピー後も同じことが有効になります。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート