問題タブ [transclusion]
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 - トランスクルードされたディレクティブ スコープ内の関数から親コントローラー スコープ内の変数を更新する
親コントローラーのスコープ変数は、トランスクルードされたディレクティブ スコープの関数内からどのように更新されますか?
次の方法でトランスクルージョンを使用して、ディレクティブを別のディレクティブに埋め込んでいます。
my-table と my-getter-button のコードは次のとおりです。
my-tableテンプレート:
my-table指令:
my-getter-buttonディレクティブ (テンプレート付き):
scope.$parent.instance = data; // or scope.instance = data;親コントローラーを変更することを期待していましたが、変更されscope.instanceませんでした。
angularjs - Transcluded スコープへの $properties の追加
次のようなトランスクルードされたスコープを持つディレクティブがあります。
親スコープのどこvalueから来ているか。
コントロールのスコープと対話する関数を追加したいので、次のようなことができます。
行スコープのngRepeatようなプロパティを追加する方法と同様です。$index私のディレクティブでこれを行う最も簡単な方法は何ですか?
javascript - ng-messages から ng-message キーを抽出する
その中のすべての ng-message キーを読み取り、有効な ng-messages 要素を作成するディレクティブmyDirectiveを作成する必要があります。
ディレクティブ テンプレート:
使用法:
したがって、この場合、「必須」と「カスタム」の配列を取得したいと思います。問題は、ディレクティブが独自のリンク機能に入るまでに、すべての ng-messsage 要素が既に非表示になっている (より正確には DOM から削除されている) ため、それを行うことができないことです。これを回避する方法は?
jquery - Angular を使用して ng-repeat の特定の位置に一意の DOM 要素を挿入する
長いリスト モデル オブジェクトにバインドされたディレクティブのような複雑なグリッドがあります。私のアプリの 1 つで、選択した行にディレクティブを挿入する必要があるリストがあります。コードは次のようなものです
複雑なコンポーネントの複数のインスタンスを避けるために、そうする必要があります (現在、スコープのトグル値に応じて表示/非表示が各行に含まれています)。これは、重くてアプリが遅くなるためです。insertControl メソッドの appendTo メソッドを使用して、jquery で要素を移動しようとしました。残念ながら、ビューを変更するとすぐには機能しません。いくつかの調査の後、トランスクルージョンまたは $compile を使用して Angular ディレクティブを使用する必要があることがわかりました。
ビュー全体で機能する jquery appendTo を実行する角度のある方法は何ですか?
angularjs - Angular ディレクティブ内の HTML にアクセスする方法 (Transclusion)
angular-uiを使用しています。angularディレクティブを使用して再利用可能な要素を作成するhtmlコーディングを削減しようとしています。私は間違いなく何かが欠けています。私がやりたいことはこれです:
<modal modal-title="Some Title" button-text="Click Me">Modal Content</modal>
そして、モーダルとボタンを出力したいので、モーダルにすべてのマークアップを何度も追加する代わりに、このカスタム要素を使用できます。要素内のコンテンツを取得する方法を一生理解できないことを除いて、機能しているようです。私がやっていることの基本は次のとおりです。
テンプレートはこちら (partials/modal.html)
要素のコンテンツを mCtrl.content に取得するにはどうすればよいですか? 残りの部分は期待どおりに機能しますが、何かが足りないだけです。ありがとう!
編集:トランスクルージョンを使用する必要があるようですので、これが私がやりたいことです:
<div class="modal-body"><ng-transclude></ng-transclude></div>
しかし、モーダルを開くと、この種のエラーが発生します。
[ngTransclude:orphan] Illegal use of ngTransclude directive in the template! No parent directive that requires a transclusion found. Element: <ng-transclude>