中安拓也のブログ

プログラミングについて書くブログ

Angular

Angular + Firebase でメモアプリを作りました

作ったメモアプリ。名前はスリーメモ はじめに スリーメモの機能 SNS認証 フォルダ スリーメモで使われている技術 はじめに Firebaseの勉強のためにスリーメモというアプリを作りました。Evernoteみたいなメモアプリです。モバイル対応はまだできていないの…

【Angular + Firebase】ログイン中のアカウントの情報を表示する

はじめに 環境 ログイン中のアカウントの情報を表示する 認証のサービスクラスを作成する ヘッダーにアカウントの情報を表示する HTMLテンプレート コンポーネントクラス 参考サイト ログイン中のアカウントの情報を表示している はじめに ログインしている…

【Angular】クロスフィールドバリデーションを使用した時にフォーム全体をエラーにする

はじめに 環境 やりたいこと バリデーションの実装 HTMLテンプレート コンポーネントクラス カスタムバリデーター 参考サイト はじめに Angularでクロスフィールドバリデーション(複数項目にまたがるバリデーション )を使った時に、フォーム全体をエラーに…

【Angular】自作コンポーネントにngModelを使用する

はじめに 環境 今回作るもの 分数入力コンポーネントの実装 参考サイト はじめに 自作コンポーネントで双方向バインディング機能(ngModel)を使えるようにしたい。 環境 CSSフレームワークとしてAngular Materialを使用しています Angular: 8.2.14 Node: 12.1…

window.open()で開いたウィンドウにデータを渡す

はじめに 環境 今回やりたいこと ウィンドウにデータを渡す二つの方法 1. ローカルストレージを用いる方法 2. window.postMessage()を用いる方法 ウィンドウにデータを渡す実装 ローカルストレージを採用した場合 親ウィンドウの実装 子ウィンドウの実装 win…

Angular(SPA)でwindow.open()を使う

はじめに 環境 作ったもの 実装 ルーティング設定 親ウィンドウの実装 子ウィンドウの実装 データの受け渡しについて 参考サイト はじめに 仕事でAngularを使ってアプリケーションを作成している時に、window.open()で別ウィンドウを表示する要件があったの…

HTMLとCSSでマトリックス図を描く

はじめに 環境 マトリクス図の作成 CSSリセット マトリクス図の全コード 参考サイト 作成したマトリクス図 はじめに 仕事でCSSフレームワークを使わずにテーブルを作成する機会があったので、備忘録としてプライベートでもマトリクス図を作ってみました。 環…

Angular + Firebase でFacebook認証

はじめに 環境 Facebook for Developersアカウントを作成 アプリの登録 FirebaseコンソールでFacebook認証を有効にする 「Facebookでログイン」ボタンを作成する Facebook認証機能の実装 補足: Facebook認証を利用したアカウント登録機能の実装 参考サイト …

Angular + Firebase でTwitter認証

はじめに 環境 TwitterのAPIキーとAPIシークレットを取得する Twitter Developer アカウントの作成 アプリの登録 FirebaseコンソールでTwitter認証を有効にする 「Twitterでログイン」ボタンを作成する Twitter認証機能の実装 補足: Twitter認証を利用したア…

【IE11】PDFファイルを保存せずにそのまま開けるようにする

はじめに 環境 msSaveBlobからmsSaveOrOpenBlobに変更 参考サイト はじめに SPAアプリ上でIE11ブラウザを使ってPDFファイルを参照する場合に、PDFファイルをダウンロードせずにそのまま開いて参照したいとの要望をクライアントからいただいたため、ソースコ…

webpackで「JavaScript heap out of memory」エラー

はじめに 環境 発生したエラー 対処法 参考サイト はじめに npm scriptsを使ってIonic(Angular/TypeScript)のAndroidビルドをしている時にFATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memoryエラーが発生して処理が落ちて…

Angular Materialでレスポンシブなサイドメニューを実装する

はじめに 環境 今回やること ダッシュボード画面 isHandset$ ヘッダー(<app-header>) サイドメニュー(<mat-sidenav>) 参考サイト はじめに PCなどの大きいディスプレイの時はサイドメニューを常に表示し、モバイル端末などの小さいディスプレイの時はハンバーガーメニューに切り替えて</mat-sidenav></app-header>…

【Angular Router】画面遷移でオブジェクトを渡す

はじめに 環境 実装 URIの設定 オブジェクトを遷移先の画面に渡す 遷移先の画面でオブジェクトを受け取る 参考サイト はじめに Angular Routerを使ってA画面からB画面に遷移する時に、B画面に単一の値ではなく、オブジェクトを渡したい時にどのような書き方…

AngularのngIf/elseとng-containerタグとng-templateタグを組み合わせて使う

ngIf/elseとng-containerタグとng-templateタグを組み合わせて使う ngIf-else構文 <ng-container>タグ <ng-template>タグ 組み合わせて使った例 環境 参考サイト 毎回、AngularでngIf/elseを書くたびに書き方を忘れてググっているので書きました。 ngIf/elseとng-containerタグとng-temp</ng-template></ng-container>…

【障害メモ】[ionic-v3][iOS]ion-pickerとion-modalを両方開くとion-modalを閉じることができなくなる

はじめに 環境 発生した障害 原因 修正方法 まとめ 参考サイト はじめに クリックイベントが検知されないときって、ほかのDOM要素が覆っていないかとか、z-indexの設定とかしか気にしていなかったんですが、 posinter-events: noneが設定されていたせいでク…

Angular Materialでモーダルとトースト使えるの知ってた???

はじめに 環境 実装 モーダル AppModuleの設定1 モーダルのコンポーネントを作成 モーダルを表示する側の実装 AppModuleの設定2 トースト AppModuleの設定 トースト用のサービスクラスを作成 サービスクラスを経由してトーストを表示 はじめに ずっとないと…

【障害メモ】[Angular CLI]Invalid rule result: Instance of class Promise.

発生した障害 障害が発生した環境 障害の改修手順 Angular CLIの最新版をインストール Node.jsのバージョン10.9以上をインストール 動作確認 参考サイト 発生した障害 Angular v8のプロジェクトでAngular CLIのng generateコマンドを使用してコンポーネント…

ng updateでAngularをv7 -> v8にアップグレードする

はじめに 環境 出典元(公式サイトURL) アップグレード 動作確認とエラーの解消 参考サイト はじめに 趣味プロ中にAngular v8以上じゃないと使えない構文がでてきたので、Angularのバージョンを7から8にアップグレードすることにした。 Angular CLIで作成した…

【障害メモ】[ionic-v3][Android][input text]ワンタップでキーボードが出てこない・文章の途中にカーソルを合わせることができない

障害内容 環境 修正方法 参考サイト 障害内容 Ionic v3のAndroidアプリで、入力フォームを複数回タップしないとソフトキーボードが出てこなかったり、文章の途中に間違いがあってもカーソルをテキストの最後にしか移動できないから、全消ししないと誤った文…

【障害メモ】[cordova-plugin-keyboard][Android]ソフトウェアキーボードが入力フォームを覆い隠してしまう

障害内容 環境 修正方法 アプリを全画面表示にするのをやめる 参考サイト 障害内容 モバイル・タブレット端末のソフトウェアキーボードが、入力フォームの前面に表示されてしまうため、画面の下部にある入力フォームがキーボードに隠されて見えない。Android…

【障害メモ】[cordova-plugin-camera]縦向きに撮影した画像が横向きで表示される

障害内容 環境 修正方法 参考サイト 障害内容 cordova-plugin-cameraを使用して、端末の画像ライブラリから画像を選択したり、写真を撮影したりすると、画像の向きが縦から横に変わって表示される。Android端末のみで発生 環境 cordova (Cordova CLI) : 8.0.…

【Angular】 送信後にフォームをリセットする

やりたいこと 環境 コーディング 動作確認 参考サイト 【2021/1/15 追記】 やりたいこと フォームのSubmitに成功したら、フォームに入力した内容もバリデーションの状態もリセットしたい。 環境 Angular@7.2.0 Angular Material@7.3.7 コーディング NgForm.r…

Angularで入れ子(ネスト)のルーティング

やりたいこと 一つ目のルーティング基点 二つ目のルーティング基点 参考サイト やりたいこと <router-outlet>をふたつ設置することで、ホーム画面にサイドメニューを作成します。 一つ目の<router-outlet>では、URLに応じて、ログイン画面・アカウント登録画面などを表示し、二つ目の<router-outlet>をホー</router-outlet></router-outlet></router-outlet>…

【Angular】オブジェクトの中身を表示する JSON パイプ

「TypeScript(Angular)でオブジェクトの中身を画面に表示したいのに[object Object]って表示される。どうしたらいい?」みたいな質問を仕事中に受けたのでメモ。 オブジェクトをJSON文字列に変換する バージョン情報 オブジェクトをJSON文字列に変換する 質…

Angular Materialでサイドメニューを作る

初期状態 上記画像の画面に、Angular Materialを使ってサイドメニューを追加します。 前提 バージョン情報 開発 AppModuleの設定 サイドメニューの雛形を作成 ナビゲーション(メニュー)の表示 参考サイト 前提 下記の対応についてはすでに完了しているものと…

【Angular】Guardで認証されていないアカウントをブロックする

やりたいこと 前提 Guardを作成する ログインしてないアカウントをホーム画面に入れない ログイン済みのアカウントをログイン画面に入れない 動作確認 未ログインのアカウントをホーム画面に遷移させない ログイン済のアカウントをログイン画面に遷移させな…

【Angular】Firebase認証からログアウトする

AngularとFirebaseを使ったログイン処理については、下記の記事ですでに実装済みのため、今回はログアウト処理を実装していきます。 関連記事 バージョン情報 実装 ヘッダーにログアウトボタンをつける ログアウト処理を実装する 動作確認 関連記事 Angular…

【Angular】HttpInterceptorを使ってスピナーを表示する

スピナーが表示されている様子 はじめに バージョン情報 開発 AppModuleの設定 スピナーコンポーネントの作成 スピナーサービスの作成 インターセプターの作成 AppModuleの設定 動作確認 HttpClientによるHTTPリクエスト HttpClientを使わない場合 参考サイ…

Angular + Firebase でアカウント登録画面の作成

AngularでFirebase認証(その1) Firebaseのセットアップ - 中安拓也のブログ AngularでFirebase認証(その2) Angular Materialを使ったログイン画面の作成 - 中安拓也のブログ AngularでFirebase認証(その3) Firebase Authentication の呼び出し - 中安拓也…

【Ionic(Angular)】Hammer.jsを使っている画面で垂直スクロールができなくなる問題

仕事中に遭遇した障害についてのメモ。iOS13(ベータ版)とAndroid 9で検知した。 発生事象 原因 対応 バージョン情報 参考サイト 発生事象 Ionic(Angular)のGestureを使ってピンチイン・ピンチアウトによるズームを有効にしている画面で、縦方向のスクロール…