表示調整
閉じる
挿絵表示切替ボタン
▼配色
▼行間
▼文字サイズ
▼メニューバー
×閉じる

ブックマークに追加しました

設定
0/400
設定を保存しました
エラーが発生しました
※文字以内
ブックマークを解除しました。

エラーが発生しました。

エラーの原因がわからない場合はヘルプセンターをご確認ください。

43/210

便利な*ngIfと注意点

Angularの機能を使うと、ゲームブックのような各ページのデータを表示するアプリの開発はかなり楽です。

(とても向いている分野だと思います)


今も読込待ち画面や選択肢タイプの画面そしてサイコロ判定による画面を個別に追加して、ページタイプごとに表示を切り替えていますが、*ngIfが大活躍しています。


ただ、やはり使いどころを間違えると致命的な結果もあり得ます。


先ほど、サイコロ判定の部分を作っていたのですが、以下のようにボタンを2つ用意しました。


---------------------------------------------------------------

<ion-button (click)="fnOnClickJudgement()" *ngIf="BeforeJudgement">サイコロを振れ</ion-button>

<ion-button (click)="fnOnClickNextPage()" *ngIf!="BeforeJudgement">次へ</ion-button>

---------------------------------------------------------------


つまりサイコロを振るためのボタンとサイコロを振った後に結果に従い次のページに飛ぶボタンです。


・サイコロを振る前は上の”サイコロを振れ”ボタンのみ表示

・サイコロを振った後は下の”次へ”ボタンのみ表示


これで行けると浅はかにも思ったわけですが、”*ngIf”はfalseの時にボタンを消し去ってしまい、新たにtrueになっても完全に復活できるわけでは無いようです。


開発ツールに表示されたエラーは以下の通り

---------------------------------------------------------------

NG0303: Can't bind to 'ngIf!' since it isn't a known property of 'ion-button'.

---------------------------------------------------------------


技術的なことを調べて、これを動的な方法で解決するのはめんどくさいと即座に思いました。


幸いと言うか、見た目だけ非表示にする方法も知っていましたので、以下のように解決しました。


---------------------------------------------------------------

<ion-button (click)="fnOnClickJudgement()" [hidden]="!BeforeJudgement">サイコロを振れ</ion-button>

<ion-button (click)="fnOnClickNextPage()" [hidden]="BeforeJudgement">次へ</ion-button>

---------------------------------------------------------------


このように気を付ける点は色々出てくると思いますが、プロパティBeforeJudgementを定義すれば、最小限のコーディングで、実装できるのはありがたいですね。

評価をするにはログインしてください。
ブックマークに追加
ブックマーク機能を使うにはログインしてください。
― 新着の感想 ―
このエピソードに感想はまだ書かれていません。
感想一覧
+注意+

特に記載なき場合、掲載されている作品はすべてフィクションであり実在の人物・団体等とは一切関係ありません。
特に記載なき場合、掲載されている作品の著作権は作者にあります(一部作品除く)。
作者以外の方による作品の引用を超える無断転載は禁止しており、行った場合、著作権法の違反となります。

この作品はリンクフリーです。ご自由にリンク(紹介)してください。
この作品はスマートフォン対応です。スマートフォンかパソコンかを自動で判別し、適切なページを表示します。

↑ページトップへ