問題タブ [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.

0 投票する
1 に答える
1309 参照

angularjs - トランスクルージョンされた入力で $pristine または $touched の変更を監視する

モデルが汚れたり触れたりしたときに応答する入力要素の周りにディレクティブを構築しようとしています。必要な ngModel は、入力モデルの値とビューの変更を反映しているようですが、他の属性は反映されていません。

ng-model を 2 つの要素に含めているという事実と関係があるのではないかと疑っていますが、一度だけ使用する方法がわかりませんでした。

理想的には、次のように作成されたものが欲しいです。

結果は次のようになります。


これが私がこれまでに持っているものです:フィドル

ディレクティブは ngModel を監視します。

0 投票する
1 に答える
79 参照

javascript - クローンを作成せずにトランスクルージョンを使用した場合の奇妙な動作

トランスクルージョンを少し試しながら、特定の親ディレクティブ コントローラーを必要とするトランスクルージョンされたディレクティブが、必要な親の下でトランスクルージョンされた後にそれを見つけることができるかどうかを確認したかったのです。私が使用したディレクティブは次のとおりです。 Transclude:true を持つ ParentOfParent ディレクティブがあります。ParentOfParent ディレクティブ テンプレートに組み込まれているディレクティブ Parent があります。Parent コントローラを必要とする Child ディレクティブがあり、ParentOfParent によって Parent ディレクティブの子としてトランスクルードされています。

私が遭遇したのは、クローン作成ありとなしのトランスクルージョン機能の使用の間に奇妙な不一致があったことです。トランスクルージョン関数の出力を (cloneFn を渡さずに) 使用している場合、子ディレクティブがその上の親コントローラーを見つけられないというエラーが発生します。 http://plnkr.co/edit/JteQpPMc6nbVNjRDHVZ2

ただし、cloneFn を渡して使用すると、すべてが機能します。

コントローラーが属するディレクティブの下に挿入された後、transcluded ディレクティブが必要なコントローラーを見つけることさえ可能ですか?

0 投票する
0 に答える
417 参照

angularjs - ng-options を使用した Angularjs Transclude 要素

ディレクティブを取得し、transclude: elementng-options を使用して選択要素にテンプレートを適用し、指定されたテンプレートで選択をラップしたいと考えています。

使用法:

しかし、何らかの理由でラップされているのは ng-options からのオプションであり、select 自体ではありません。ここで最終的な DOM を見ることができます。

トランスクルージョンのある時点で選択要素が削除されたと思いますが、よくわかりません。私が見つけたngOptionstranclude: elementは少し混乱したことだけでした。

tranclude: elementこの select をand で正しく動作させるにはどうすればよいngOptionsですか? コンパイル/プリ/ポストリンク機能で何かできますか?

プランカー

0 投票する
0 に答える
143 参照

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') のさまざまな制限によって示されるさまざまな動作についての洞察を提供してください。

0 投票する
1 に答える
958 参照

javascript - Ng-transclude が table 要素で機能しない

データを表示するテーブルのディレクティブを作成しようとしています。

テーブルにはヘッダーとボディがあります。

理想的には、次のディレクティブが必要です。

ng-transclude でそれらを使用できるように

ただし、これは my-table の次のテンプレートでは機能しません。

ページがレンダリングされると、次のようになります。

ng-transclude がテーブルでうまく機能しないという言及を見たことがあります。たとえば、

ブラウザは ng-transclude div をテーブルの外に移動します

やりたいことはかなり合理的なことのように思えるので、誰かがこの問題を解決した経験があるかどうか疑問に思っていました.

乾杯!

0 投票する
1 に答える
275 参照

javascript - ng-transclude と require を使用したディレクティブからディレクティブへの通信

私には2つのディレクティブがあります。

そして2つ目:

ディレクティブ A の HTML:

ディレクティブ B の HTML:

そして、私はそれらを次のように使いたい:

require と ng-transclude を使用して相互に通信させ、両方のテンプレートをレンダリングさせるにはどうすればよいですか? たとえば、directiveB テンプレートの directiveA からテスト変数を出力したいと思います。私はディレクティブとトランスクルージョンが初めてです。

0 投票する
0 に答える
51 参照

angularjs - ngSwitch の ngTransclude

ポップオーバーがあり、このポップオーバーには ngTransclude があります。ngSwitch (true/false) でポップアップを表示/設定します。ここでの問題は、ngTransclude が ngSwitch 内にあり、ポップオーバーを表示するたびにトランスクルード/$コンパイルする必要があるため、アプリケーションの速度が低下することです。この問題を解決する方法はありますか?

つまり、transcluded 要素内に ng-repeat がある場合、この ng-repeat が監視されますが、それは望ましくありません。ポップアップ時にこの ng-repeat を監視したいからです。が開かれます。