問題タブ [angularjs-compile]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
angularjs - `compile:` が正常に動作しているように見えるのに、なぜ $compile が必要なのですか?
http://jsfiddle.net/3jvoL4ew/をチェックしてください
(注: で実行できることはわかっていますがtemplate:
、それは私の質問ではありません)
これには、使用されている要素にボタンとテキストを追加するディレクティブが含まれています。
それは機能しますが、そのようなディレクティブを定義する通常の方法は次のとおりです。
ngRepeat で使用するとusingcompile:
がより簡潔で効率的である場合、なぜ人々は を使用することを推奨するの$compile
でしょうか?
javascript - $compile を使用すると factory が複数回実行されるのはなぜですか
私のコードでは、JavaScript コールバック関数内から別の API から返された html をコンパイルする必要があります。
以下は私のコードの簡略版です。$compile と $rootScope を使用して任意の要素を再コンパイルするファクトリ メソッドを使用しています。
このセットアップの奇妙な点は、コンパイル機能によってデータ ファクトリが複数回実行されることです。これの理由は何ですか?また、動的 html をコンパイルするこの方法の提案や欠陥はありますか?
ここにプランカーリンクがありますhttp://plnkr.co/edit/D32kCS4BkslvpBsRtFoS
angularjs - $rootScope:inprog エラーが発生しますが、動作するには scope.$apply が必要です
エラーをスローすることなく、以下のスニペットにスコープを適用する方法はありますか? (そして、ハックや回避策try/catch
、$timeout
またはBONJOURのハードコーディングなし)
がないSCOPE.$apply()
場合、アラートは{{HELLO}}
の代わりに表示されBONJOUR
ます。
angularjs - Angularjs では、複数のディレクティブの動的テンプレート形成とコンパイル コードをコントローラーからカスタム ディレクティブに移動するための最適なソリューションが必要です
タブをクリックすると、単一のページに複数の angularjs ディレクティブを表示する必要があります。これは、c3 チャート ディレクティブと ng グリッド ディレクティブの組み合わせである可能性があります。コントローラーでこれらすべての関連パラメーターを使用してモデルを準備し、テンプレートを作成してから、コントローラー自体でコンパイルします。これは完全に正常に機能しています。コントローラーで DOM 操作を行うのは良い方法ではないことに気付いたので、カスタム ディレクティブでそれを実行しようとしています。
このディレクティブは、次の機能をサポートする必要があります。
- テンプレートは、C3 チャート ディレクティブの組み合わせである必要があります。
- テンプレートには、c3 チャート ディレクティブと共に Angularjs ng Grid ディレクティブも含めることができます。
- 将来的には、C3 chart および ng grid ディレクティブと共に Good Map ディレクティブも使用したいと考えています。
- また、これらのディレクティブの一部は、カスタム ドロップダウンでサポートする必要があります。
今のところ、完全に正常に動作しているコントローラーで次のコードを使用しました。
簡単にするために、いくつかのサンプルコードのみを提供しました。dashletteId に基づいて、dashletteId に基づいてテンプレートを動的に作成するための特定の要件がいくつかあります。このコードはすべて完全に機能しています。今、私の目的は、このすべてのテンプレート形成とコンパイル コードをコントローラーからカスタム ディレクティブに移動することです。これに対する最善の解決策を探しています。
特定のユーザーが任意のタブをクリックすると、コンパイルのためにどのテンプレートを作成する必要があるかが事前定義されています。したがって、ng-init関数呼び出しまたはタブのクリック(つまり、選択)関数呼び出しのいずれかでそれを取得できます。
以下は、私の ng グリッド テンプレート形成のサンプル コードです。
したがって、1 つのページに 4 つのディレクティブを表示する必要があります。ユーザーが事前に定義した選択に基づいて、3 つの c3 チャートと 1 つの ng Grid テーブル ディレクティブ、または 2 つの C3 チャートと 2 つの ng グリッド テーブルなどを表示する必要があります。
以下は、これにさらに取り組む前のカスタム ディレクティブの予備的なコードです。より良いアプローチのために、他のユーザーからの情報を取得することを考えました。ここで私のリンク関数では、タブのクリックまたは ng-init フェーズなどでコントローラーから動的に取得する必要があるテンプレートを使用します。
私の質問に対してさらに明確にする必要がある場合はお知らせください。指示があれば、サンプルコードを添えてください。