[解決済み] Angular 2のテンプレートでlet-*とは何ですか?
質問
Angular 2のテンプレート内で、奇妙な代入構文に出会いました。
<template let-col let-car="rowData" pTemplate="body">
<span [style.color]="car[col.field]">{{car[col.field]}}</span>
</template>
と表示されます。
let-col
と
let-car="rowData"
2つの新しい変数を作成します。
col
と
car
を作成し、テンプレート内でバインドすることができます。
出典 https://www.primefaces.org/primeng/#/datatable/templating
この魔法のようなものは何ですか
let-*
という構文があります。
どのように動作するのですか?
とはどのような違いがあるのでしょうか?
let-something
と
let-something="something else"
?
解決方法は?
アップデート Angular 5
ngOutletContext
にリネームされました。
ngTemplateOutletContext
参照 CHANGELOG.md @ angular/angular
オリジナル
テンプレート (
<template>
または
<ng-template>
4.x 以降) は埋め込みビューとして追加され、コンテキストが渡されます。
とは
let-col
コンテキストプロパティ
$implicit
として利用できるようになります。
col
をバインディング用のテンプレート内で使用します。
とは
let-foo="bar"
コンテキストプロパティ
bar
として利用できるようになります。
foo
.
例えば、テンプレートを追加する場合
<ng-template #myTemplate let-col let-foo="bar">
<div>{{col}}</div>
<div>{{foo}}</div>
</ng-template>
<!-- render above template with a custom context -->
<ng-template [ngTemplateOutlet]="myTemplate"
[ngTemplateOutletContext]="{
$implicit: 'some col value',
bar: 'some bar value'
}"
></ng-template>
参照 この回答 そして ViewContainerRef#createEmbeddedView .
*ngFor
もこのように動作します。正規の構文にすると、これがより明確になります
<ng-template ngFor let-item [ngForOf]="items" let-i="index" let-odd="odd">
<div>{{item}}</div>
</ng-template>
ここで
NgFor
は、テンプレートを埋め込みビューとしてそれぞれの
item
の
items
を追加し、いくつかの値 (
item
,
index
,
odd
) をコンテキストに追加します。
関連
-
[解決済み] Angular HTMLバインディング
-
[解決済み] Angular:*ngClassを使った条件付きクラス
-
[解決済み] Angular/RxJS `Subscription` からいつ退会すればいいのか?
-
[解決済み] モジュール "@angular-devkit/build-angular" が見つかりませんでした。
-
[解決済み] Angular 2+でngShowとngHideに相当するものは何ですか?
-
[解決済み] コンポーネントテンプレートで要素を選択するには?
-
[解決済み】PromiseとObservablesの違いは何ですか?
-
[解決済み】Angular 2 ルート変更時に上部にスクロールさせる
-
[解決済み】Angularを使用してデータ属性を記述するにはどうすればよいですか?
-
[解決済み] ファイル 'app/hero.ts' is not a module error in console, where to store interfaces files in directory structure with angular2?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
angularjs ポップアップボックスの方法1
-
[解決済み] Angularの@Directiveと@Componentの比較
-
[解決済み] Angularのエラーです。"Can't bind to 'ngModel' because it isn't a known property of 'input'"."
-
[解決済み] Angular - すべてのリクエストにヘッダを設定する
-
[解決済み] 例外が発生しました。既知のネイティブプロパティではないため、'ngFor'にバインドできない
-
[解決済み] Angular2の括弧、括弧、アスタリスクの違いは何ですか?
-
[解決済み] Angular HttpClient "パース中のHttp失敗"
-
[解決済み] AngularでngFor repeatをある数のアイテムに制限するにはどうすればよいですか?
-
[解決済み] Angular 2でシングルトンサービスを作成するには?
-
[解決済み] ジョブ名「...getProjectMetadata」は存在しません。