[解決済み】Angularのテンプレートで変数を宣言する方法
2022-03-30 07:44:37
質問
次のようなテンプレートがあります。
<div>
<span>{{aVariable}}</span>
</div>
で終わらせたいと思います。
<div "let a = aVariable">
<span>{{a}}</span>
</div>
どうすればいいのでしょうか?
どのように解決するのですか?
更新情報
のようなディレクティブを作成すればよいのです。
*ngIf
を呼び出し、それを
*ngVar
ng-var.directive.ts
@Directive({
selector: '[ngVar]',
})
export class VarDirective {
@Input()
set ngVar(context: unknown) {
this.context.$implicit = this.context.ngVar = context;
if (!this.hasView) {
this.vcRef.createEmbeddedView(this.templateRef, this.context);
this.hasView = true;
}
}
private context: {
$implicit: unknown;
ngVar: unknown;
} = {
$implicit: null,
ngVar: null,
};
private hasView: boolean = false;
constructor(
private templateRef: TemplateRef<any>,
private vcRef: ViewContainerRef
) {}
}
これを
*ngVar
ディレクティブは次のように使用できます。
<div *ngVar="false as variable">
<span>{{variable | json}}</span>
</div>
または
<div *ngVar="false; let variable">
<span>{{variable | json}}</span>
</div>
または
<div *ngVar="45 as variable">
<span>{{variable | json}}</span>
</div>
または
<div *ngVar="{ x: 4 } as variable">
<span>{{variable | json}}</span>
</div>
こちらもご覧ください
オリジナルの回答
Angular v4
-
div
+ngIf
+let
-
div
+ngIf
+as
ビュー
<div *ngIf="{ a: 1, b: 2, c: 3 + x } as variable">
<span>{{variable.a}}</span>
<span>{{variable.b}}</span>
<span>{{variable.c}}</span>
</div>
コンポーネント.ts
export class AppComponent {
x = 5;
}
-
のようなラッパーを作りたくない場合は、以下のようにします。
div
を使用することができます。ng-container
ビュー
<ng-container *ngIf="{ a: 1, b: 2, c: 3 + x } as variable">
<span>{{variable.a}}</span>
<span>{{variable.b}}</span>
<span>{{variable.c}}</span>
</ng-container>
コメントで @Keith が述べているように
<ブロッククオートこれはほとんどの場合うまくいきますが、一般的な解決策ではありません。 変数が真実であることに依存する
別のアプローチについては、アップデートを参照してください。
関連
-
[解決済み】ある要素を別の要素に移動させるには?
-
[解決済み】divの高さを画面の残りスペースで埋めるようにする
-
[解決済み] HTMLのテーブルを部分的に透明にするには?
-
[解決済み] Add a scrollbar to a <textarea> [duplicate]
-
[解決済み] mailchimpのメールインラインスタイルのコーディングがいつも通りできない
-
[解決済み] どのラジオボタンが選択されているかをjQueryで知るにはどうしたらよいですか?
-
[解決済み] ページを再読み込みせずにURLを変更するにはどうすればよいですか?
-
[解決済み] リンクのように動作するHTMLボタンを作成する方法
-
[解決済み] divの中のテキストを縦に揃えるにはどうしたらいいですか?
-
[解決済み】HTML5入力のプレースホルダの色をCSSで変更する。
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】JQuery: 'Uncaught TypeError: ajaxリクエストで「Illegal invocation」が発生する - 複数の要素
-
[解決済み】Markdownで'target="_blank"'でリンクを作成することはできますか?
-
[解決済み】ローカルの実行ファイルへのハイパーリンクを作成する方法は?
-
[解決済み] IE=edge,chrome=1というのは今でも有効なのでしょうか?
-
[解決済み] (X)HTMLにおける "PRE "タグの用途は何ですか?
-
[解決済み] :last-child が期待通りに動作しない?
-
[解決済み] 入力のラジオ要素を水平に揃えるにはどうしたらいいですか?
-
[解決済み] head」タグと「header」タグの本当の違いは何ですか?[重複】について]
-
[解決済み] アトムでキーバインドリゾルバーのポップアップを消すにはどうしたらいいですか?
-
[解決済み] type="application/x-shockwave-flash "で表示可能な形式は?