私はいくつかのページを構築する必要のあるXMLのために、ページを動的にビルドする(サーバーからXMLを取得し、そのXML構築ページまたはフォームを読む)すべてが互いに関連しており、「次へ」、「前の」ボタンを使用してネガティブにすることができます。
は<div>
<form name="myController.mainForm" novalidate>
<div my-dynamic="myController.dynamicHtml"></div>
</form>
</div>
herer myDynamicが生成されたHTMLを扱っている、ディレクティブで、私たちのようなものを持っていることを実現するために、我々は別のページに移動する必要があるときに我々は、そのページのための新しいHTMLを生成し、myController.dynamicHtml
に割り当て私は、入力コントロールの数を持っている各ページで今
link: function postLink(scope, element, attrs) {
scope.$watch(attrs.myDynamic, function (html) {
element.html(html);
$compile(element.contents())(scope);
});
}
と、私はこのような何かを持っているという指令で
、 (またはディレクティブ)であり、それぞれにはバインディングが少なく、ウォッチャー数が増えます。もし私が否定が、別のページにナビゲートすると、前のページのウォッチャーは破壊されず、my-dynamicディレクティブがスコープから削除されるまで気付くはずです。
私は、HTMLを再度コンパイルするときに、前のページの時計が破壊されるようにするために必要なことは何ですか。
'$ compile'サービスは何かをスコープにリンクするたびに、ウォッチャーを追加します。そのため、 'ng-repeat'、' ng-switch'、 'ng-view'、' ng-include'、 'ng-if'などのディレクティブはすべて新しい子スコープを作成します。それらはコンパイルされたDOMを破壊するときに子スコープにリンクし、そのスコープを破棄します。 [scope。$ new](https://docs.angularjs.org/api/ng/type/$rootScope.Scope#$new)と[scope。$ destroy](https://docs.angularjs.org/)を使用してください。 api/ng/type/$ rootScope.Scope#$ destroy)を実行します。 – georgeawg
あなたは詳細を説明することができます、私はどのようにスコープを使用できるかわかりません。私の場合は新規の場合 – Posto