動的に生成されたスパンにng-clickディレクティブを追加する必要があります。スパンは選択したテキストをラップします。ng-clickを動的に追加する方法
range = window.getSelection().getRangeAt(0);
var span = document.createElement("span");
$(span) .addClass("comment")
.attr("id", short_id +"_"+ n_comment)
.attr("ng-click", "showComment()")
.append(range.extractContents());
range.insertNode(span);
上記のコードは、選択を取得し、スパンでそれをラップしますが、ng-click
は動作しません。
角度指示は動的に生成されるので、$compile
でコンパイルする必要がありますが、この場合はコンパイルの実行方法がわかりません。
どうすれば解決できますか?皆さん、ありがとうございました。
は、そのような広い説明では機能しません。ブラウザのコンソールでエラーが発生しますか(スパンのレンダリング中か実際にクリックしたとき)イベントを「旧式」なものにすることを止めているのは何ですか? – Icepickle
私はコンソールにエラーがありません(レンダリング中もクリックしても)。問題がコンパイルに関係していると私は確信しています。 '$ compile'を使わないと、ng-clickは角度指示の代わりに単純なhtmlとみなされます。しかし、私の質問は、この場合に '$ compile'を使う方法ですか? – Alessio
うれしかったですが、これを達成するためのより簡単な方法があります。 jQueryとAngularを混在させているようです。 – dwbartz