問題タブ [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.
javascript - AngularJS ディレクティブは動的コンテンツからクラス名を取得できますか?
上記の場合、 class を持つ要素が( )cls
内から同じ動作で取得され、明示的に設定されることを期待しています。ng-repeat
ng-bind-html-unsafe
私はここで何が間違っているのだろうか?
javascript - ngBindCompile ディレクティブはどのように記述されますか?
テンプレートである文字列を取得する代わりに、テンプレートを含む変数を取得する ngBindTemplate に似たディレクティブはどのように記述されますか? すなわち:
既存:
書くには:
どこvar="{template}"
前もって感謝します!
angularjs - AngularJS - 手動コンパイルと自然コンパイル
要素を ($compile サービスを介して) 頻繁に手動でコンパイルする必要はないということは、かなり一般的に受け入れられているようです。いくつかの動的に駆動される html のために、リンク関数で手動コンパイルを行うディレクティブがあります。このようなもの (動的 html の実際の取得は、はるかに複雑です):
このディレクティブを数回発行するページがあり、各コンパイルに 300 ミリ秒程度かかるため、いくつかのパフォーマンスの問題が発生し始めています。
「ボンネットの下」で何が起こっているのかをよりよく理解し、より良い設計上の決定を下すために、私の質問は、リンク機能を提供するのではなく、リンク機能の真ん中でこの種の手動コンパイルを行うことの違いは何ですか?テンプレートを使用してディレクティブを作成し、角度を自然にコンパイルさせますか?
これは、私が話している2つのシナリオを示すフィドルです: http://jsfiddle.net/KNLea/
動的 html 生成をリファクタリングして、文字列を作成し、それをテンプレートとして使用できるようにできると思います。上記は次のように変更されます。
この 2 つにどのような根本的な違いがあるのか、また、期待できるパフォーマンスの向上があるとすれば、それを理解したいだけです。まったく違いはありませんか?angular がテンプレートをコンパイルするとき、$compile サービスと同じことをするだけですか? それとも、パフォーマンスに違いをもたらすテンプレートの自然なコンパイルに根本的な違いはありますか?
jquery - AngularJS で HTML スニペットを動的にコンパイルするときにイベント ハンドラをバインドする方法
私はAngularJSでOpenLayersを使用しています。最終的にポップアップ機能に触れ始めるまで、すべてがうまくいきます。
$compile
次の方法で、サービスを使用して動的コンテンツをポップアップに表示する方法を知っています。
しかし、to(入力とスパンの後にtemplate
注意してください)を変更すると、イベントハンドラーに苦労していました:ng-click
でイベント ハンドラを定義します$scope
。
しかし、イベントをトリガーすることはできません。を使用するcontent.html()
と、angularjs が気にするいくつかの重要な情報が失われるとは思えません。次のコードを試したとき:
このスニペットは期待どおりに完全に機能します (ここでも ng-click が機能します)。これら 2 つの使用方法の唯一の違いはcontent
、 とcontent.html()
です。
しかし、静的なhtmlコンテンツ文字列が期待さcontent
れているため、使用できません。OpenLayers.Popup.FramedCloud
これについてのアイデアはありますか?どうもありがとうございました。
angularjs - Chrome 内で FB キャンバス アプリをレンダリングするときの Angular 1.2.9 コンパイル エラー
Chrome で Facebook キャンバス アプリをレンダリングする際に問題が発生しました。アプリは Firefox でも Facebook 以外でも正常に動作します。コンテンツは、DOM のコンパイル中にクラッシュする angular.js (1.2.9) を使用してレンダリングされます。
この問題は、キャンバス アプリへの最初の要求でのみ発生します。ページがリロード (ソフト リロード) されると、すべてが機能します。何らかの理由で、ページがまだロードされている間にangularがノードのコンパイルを開始すると思います(スタックトレースとブレークポイントの画像が添付されています - https://imgur.com/a/iDpSc)。何かご意見は?ありがとう。
angularjs - Angular $compile と必要なコントローラー
複合リスト ディレクティブがあります。つまり、それ自体がリストになるリスト項目です。
親ディレクティブはコントローラーを定義します。
(項目の) リストには、それ自体で正常に動作する親コントローラーが必要です (なぜそうすべきではないのか..):
同じことが具体的なアイテムにも当てはまります。これも問題ありません。
アイテムは、それ自体が「リスト」を作成する複合体である場合があります。この構成は、リンク関数内のリスト項目を$compile (ing) することによって行われます。
これは例外をスローします:
ディレクティブ 'list' で必要なコントローラー 'parent' が見つかりません!
この理由は明らかです。$compile 関数がコントローラーを提供していないため、'parent' の要件を解決できません。
それで、コントローラーを手動で提供しようとしました:
これは例外をスローしませんが、必要なときにこのコントローラーを提供しません。
$compile 関数に、同様に評価する必要がある外部コントローラーを受け入れるようにする方法はありますか?
javascript - AngularJS のコンパイル済みコードが「後ろ」に留まる
私にとってバグのように見えるものに気付きましたが、おそらく$compile
AngularJS でサービスを誤用している可能性があります。angularjs コードをコンパイルして div に表示する「動的」と呼ばれるディレクティブがあります。その場合にコンパイルするコードには含まれておりng-controllers
、それらのコントローラーはイベントをリッスンしています。問題は、コントローラーが置き換えられた後も「死んでいない」ように見えることです。これは、コントローラーを消去する必要がある場合でも、イベント ($routeChangeSuccess
またはその他のイベント) に反応するためです。問題を示す動作中のplunkrを次に示します。私の問題のコード例を見てみましょう:
私が使用しているディレクティブ:
メイン コントローラーに続いて、以下のコントローラーを含めます。
firstButton()
次にを呼び出すとsecondButton()
、checkButton()
のみを受信するのではなく、alert(2)
2 つのアラートを受信します。ボタン 1/2/1/2/1/2/1/2 を押すと、クリックしたボタンと同じ数のアラートが表示されます。
ここで何が間違っていますか?
ありがとう、ヒルニウス