問題タブ [angular2-ngcontent]
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.
angular - コンポーネントへのパラメーターとしてのAngular 2テンプレート
私の単純化された目標は、アイテム テンプレートを含むリストであるコンポーネントを構築することです。例えば:
これが私のコードです:
期待される結果:
- アイテム
- アイテム
- アイテム
実結果:
•<br> •<br> • アイテム
angular - Angular2のチェック/検出ng-content selectが親ノードから存在する* ngIfステートメント
私の質問は、<some_selector>
接続された with<ng-content select='some_selector'>
が親コンポーネントで指定されたかどうかを確認することです。明確にするために例を挙げるかもしれません:
親コンポーネント テンプレート (editor.html) があります。
これが私の編集者です
モーダル コンポーネント テンプレート (modal.html) では、次のような *ngIf ステートメントを使用します。
<mfoot>
タグがタグ内のエディター テンプレートで使用されている場合、div.modal-footer を表示しないようにします<modal>
。では、メソッドを実装するhasNgContent()
方法は?または angular2 にある可能性があり、タグが親コンポーネントタグで使用されたかどうかを*ngIf
検出できる、より直接的なステートメントがあります。<mfoot>
angular - angular2でngStyleをng-conentにバインドする方法
ngStyle を ng-content にバインドしようとしましたが、機能しません。以下の例を参照してください。
インターネットで検索すると、以下のソリューションしか見つかりません。
=> https://plnkr.co/edit/T5CoP5qmd4nzIPAFjLNQ?p=previewより
ただし、スタイル値を動的に変更することはできません。
angular - ng-content トランスクルージョンによる動的リピーターの作成
私が達成しようとしているのは、各行のビューがそれを使用するマスターコンポーネントによってコンポーネントで任意に定義されている場合に、行を動的に追加および削除できる任意のオブジェクトの配列にバインドされた汎用コンポーネントです。
これMasterComponent
は、さまざまなページに実装される任意のコンポーネントであり、自己完結型であり、メタデータや外部ソースによって定義されていないことに注意してください。
私がこれまでに持っているのは、次のコンポーネントです。
RepeaterComponent テンプレート:
マスター コンポーネント テンプレート:
この<field-textbox>
コンポーネントは、使用する必要のある追加データを保持する単純な入力をカプセル化するために使用するカスタム コンポーネントです。
MasterComponentは、このインスタンスでは次のようなオブジェクトを保持します。
このアプローチには、解決策が見つからないように見える 2 つの問題があります。
- テンプレートを複製すると、セレクターはすべての行で同一になり、レンダリング後にトランスクルージョンポイントが1つだけ残り
ng-content
ます。ngFor
ng-content
- トランスクルードされたディレクティブの宣言
row
から変数への参照がないため、データを正しくバインドできません。ngFor
<field-textbox>
さまざまな任意の構造とさまざまなテンプレートRepeaterComponent
をさらに新しく作成するための労力を最小限に抑える、を実装するためのより良いアプローチはありますか?MasterComponents
angular - トランスクルージョンされたコンテンツへの参照を取得する方法
DropdownComponent
トランスクルードされたボタン (または他の適切な要素または Angular コンポーネント) がドロップダウンをトリガーできるようにする と、ドロップダウンに表示する必要があるコンテンツのトランスクルードされた div を実装しようとしています。このコンポーネントの使用方法は次のようになります。
DropdownComponent
カスタムCSSクラスをバインドするには、そのボタンへの参照を取得する必要があります。
次のように、上記のコードに css クラスを追加し、 を使用してその参照を取得できますgetElementsByClassName()
。
しかし、より簡単に使用できるようにするために、コンテンツを透過してボタンへの参照を取得するために使用される属性DropdownComponent
を使用したいと思います。origin
このようなもの、
これを達成する方法はありますか?または、これを行うより良い方法はありますか?
注: 私のドロップダウン html は次のとおりです。
angular - @ContentChildの動的インスタンスを参照するAngular 2
Angular 2.0.1 を使用しています。
他のコンポーネントを介して取り込むことができるコンポーネントがあります<ng-content>
-これはうまく機能します。
私が遭遇する問題は、注入されたコンポーネントを参照したいときです。
<ng-content>
それが 1 つのコンポーネントに過ぎないこと
を知っていれば、次のように言うことができます。@ContentChild(MyComponent) dynamicTarget: IMyComponent;
しかし、それは任意のコンポーネントである可能性があるため (注入されたコンポーネントが特定のインターフェイスを実装しているという唯一の仮定はあります)、より複雑になります。
私も試してみましたが<ng-content #dynamicTarget'>
、それを言って参照しました @ContentChild('dynamicTarget') dynamicTarget: IMyComponent;
が、これは未定義を返します。
これがコンポーネントのインスタンスであることをAngular 2に伝えて、関数を呼び出せるようにする方法を知っている人はいますか?
ユース ケースをさらに明確にするために、任意のコンポーネントをコンテンツとして取り込むことができるマルチステップ ウィザードがあり、validate
コンテンツに対して関数を呼び出したいと考えています (これも、前述のインスタンスに存在すると仮定します)。
angular - :host を使用すると、Angular2 ng-content scss のネストされたスタイルと StyleUrls が機能しない
を使用するコンポーネントを構築していますがng-content
、ネストされた scss または StylesUrl を使用するときに使用できないことがわかりました。:host >>>
例えば :
.has-divider
私のネストされた.search-link
ものが機能しない理由と、コンテンツを .scss ファイル内に配置して使用すると、.scss ファイルで機能しないstyleUrls
理由を誰かに教えてもらえますか:host
。これは予想されることですか、それともおそらくバグですか
理想的には、ネストされたscssからおよび外部scssファイルを引き続き使用できるようにしたいと思います
angular - ng-content を使用する場合、入力はフォーム検証で考慮されません
次のコンポーネントがある場合 (セレクター my-template を使用):
次のように使用します。
入力が無効であっても、フォームは常に有効です。入力が無効な場合にフォームが無効になるようにするにはどうすればよいですか?
angular - 剣道コンポーネントのカプセル化テンプレート/コンポーネントの使用
ng-content や TemplateRef などを介してカスタム列定義をトランスクルードすることは可能ですか? サイト ( http://www.telerik.com/kendo-angular-ui/components/grid/ )で利用可能な Kendo UI Grid plunkerとAngular2 子コンポーネントをデータとしてテストしましたが、役に立ちませんでした。ng-content select も試しましたが、何も試しませんでした。どんな助けでも大歓迎です、ありがとう!