問題タブ [angularjs-ng-transclude]
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 - トランスクルージョンされた入力で $pristine または $touched の変更を監視する
モデルが汚れたり触れたりしたときに応答する入力要素の周りにディレクティブを構築しようとしています。必要な ngModel は、入力モデルの値とビューの変更を反映しているようですが、他の属性は反映されていません。
ng-model を 2 つの要素に含めているという事実と関係があるのではないかと疑っていますが、一度だけ使用する方法がわかりませんでした。
理想的には、次のように作成されたものが欲しいです。
結果は次のようになります。
これが私がこれまでに持っているものです:フィドル
ディレクティブは ngModel を監視します。
javascript - クローンを作成せずにトランスクルージョンを使用した場合の奇妙な動作
トランスクルージョンを少し試しながら、特定の親ディレクティブ コントローラーを必要とするトランスクルージョンされたディレクティブが、必要な親の下でトランスクルージョンされた後にそれを見つけることができるかどうかを確認したかったのです。私が使用したディレクティブは次のとおりです。 Transclude:true を持つ ParentOfParent ディレクティブがあります。ParentOfParent ディレクティブ テンプレートに組み込まれているディレクティブ Parent があります。Parent コントローラを必要とする Child ディレクティブがあり、ParentOfParent によって Parent ディレクティブの子としてトランスクルードされています。
私が遭遇したのは、クローン作成ありとなしのトランスクルージョン機能の使用の間に奇妙な不一致があったことです。トランスクルージョン関数の出力を (cloneFn を渡さずに) 使用している場合、子ディレクティブがその上の親コントローラーを見つけられないというエラーが発生します。 http://plnkr.co/edit/JteQpPMc6nbVNjRDHVZ2
ただし、cloneFn を渡して使用すると、すべてが機能します。
コントローラーが属するディレクティブの下に挿入された後、transcluded ディレクティブが必要なコントローラーを見つけることさえ可能ですか?
angularjs - ng-options を使用した Angularjs Transclude 要素
ディレクティブを取得し、transclude: element
ng-options を使用して選択要素にテンプレートを適用し、指定されたテンプレートで選択をラップしたいと考えています。
使用法:
しかし、何らかの理由でラップされているのは ng-options からのオプションであり、select 自体ではありません。ここで最終的な DOM を見ることができます。
トランスクルージョンのある時点で選択要素が削除されたと思いますが、よくわかりません。私が見つけたngOptions
のtranclude: element
は少し混乱したことだけでした。
tranclude: element
この select をand で正しく動作させるにはどうすればよいngOptions
ですか? コンパイル/プリ/ポストリンク機能で何かできますか?
javascript - ng-transclude は、要素ディレクティブと属性ディレクティブで異なる動作をします
ケース I:
要素レベルの制限「E」がディレクティブ内にトランスクルージョンされたディレクティブ(「x」と呼びましょう)(「y」と呼びましょう)があり、スコープを分離しています。「y」には、テンプレートに 2 つのネストされた ng-repeat があります。
JSBin: http://jsbin.com/hudani/edit?html,js,output
動作: 'x' は、コントローラ スコープである 'y' の親スコープを取ります (一部の呼び出し兄弟スコープとして予期される動作)。
ケース II:
ディレクティブ内にトランスクルードされた属性レベルの制限「A」を持つディレクティブ(「x」と呼びましょう)(「y」と呼びましょう)があり、スコープを分離しています。「y」には、テンプレートに 2 つのネストされた ng-repeat があります。
JSBin: http://jsbin.com/monoco/2/edit?html,js,output
動作:トランスクルージョンされたコンテンツには、兄弟スコープとして 2 番目の ng-repeat があり、親スコープとして最初の ng-repeat があります。
この動作を確認するためのリソースをいくつか提案してください。可能であれば、同封のディレクティブ ('x') のさまざまな制限によって示されるさまざまな動作についての洞察を提供してください。
javascript - Ng-transclude が table 要素で機能しない
データを表示するテーブルのディレクティブを作成しようとしています。
テーブルにはヘッダーとボディがあります。
理想的には、次のディレクティブが必要です。
ng-transclude でそれらを使用できるように
ただし、これは my-table の次のテンプレートでは機能しません。
ページがレンダリングされると、次のようになります。
ng-transclude がテーブルでうまく機能しないという言及を見たことがあります。たとえば、
ブラウザは ng-transclude div をテーブルの外に移動します
やりたいことはかなり合理的なことのように思えるので、誰かがこの問題を解決した経験があるかどうか疑問に思っていました.
乾杯!
javascript - ng-transclude と require を使用したディレクティブからディレクティブへの通信
私には2つのディレクティブがあります。
そして2つ目:
ディレクティブ A の HTML:
ディレクティブ B の HTML:
そして、私はそれらを次のように使いたい:
require と ng-transclude を使用して相互に通信させ、両方のテンプレートをレンダリングさせるにはどうすればよいですか? たとえば、directiveB テンプレートの directiveA からテスト変数を出力したいと思います。私はディレクティブとトランスクルージョンが初めてです。
angularjs - ngSwitch の ngTransclude
ポップオーバーがあり、このポップオーバーには ngTransclude があります。ngSwitch (true/false) でポップアップを表示/設定します。ここでの問題は、ngTransclude が ngSwitch 内にあり、ポップオーバーを表示するたびにトランスクルード/$コンパイルする必要があるため、アプリケーションの速度が低下することです。この問題を解決する方法はありますか?
つまり、transcluded 要素内に ng-repeat がある場合、この ng-repeat が監視されますが、それは望ましくありません。ポップアップ時にこの ng-repeat を監視したいからです。が開かれます。