tag:blogger.com,1999:blog-41998386783926980892024-03-14T21:32:32.152+09:00kainobi2主にプログラミング tips を書いています。Unknownnoreply@blogger.comBlogger278125tag:blogger.com,1999:blog-4199838678392698089.post-92092723228197569682019-07-26T08:53:00.002+09:002019-07-26T08:53:43.605+09:00jQuery - window オブジェクトに登録されているイベントを取得する方法次の実装で、window オブジェクトに登録されているイベントを取得することができます。<br />
<br />
$._data(window, 'events')Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4199838678392698089.post-74419650245238918132019-07-20T13:24:00.004+09:002019-07-21T16:24:57.002+09:00WordPress Cocoon テンプレートカスタマイズ:ヘッダーに任意の画像を挿入する該当ファイル<br />
lib > html-forms.php > generate_the_site_logo_tag<br />
<br />
変更前<br />
$logo_before_tag = '<'.$tag.' class="logo'.$class.'"><a href="'.esc_url(get_home_url()).'" class="site-name site-name-text-link" itemprop="url"><span class="site-name-text" itemprop="name about">';<br />
<br />
変更後(赤字部分を追記)<br />
$logo_before_tag = '<'.$tag.' class="logo'.$class.'"><a href="'.esc_url(get_home_url()).'" class="site-name site-name-text-link" itemprop="url" <b><span style="color: red;">style="display: flex; flex-direction: column;"</span></b>><span style="color: red;"><b><img class="page-sub-header-image" style="width: 5em; margin: auto;" src="画像のファイルパス"></b></span><span class="site-name-text" itemprop="name about">';Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4199838678392698089.post-45902325117504151272019-04-18T23:08:00.001+09:002019-04-18T23:08:17.761+09:00Azure のサービスでクロスサイトオリジンを許可するAzure のポータルサイトにログインし、次の順でメニューを進みます。<br />
<br />
<b>ダッシュボード > サービス名 > ファイアウォール設定</b><br />
<br />
そして、画面に表示されている「クライアント IP アドレス」と識別名を追加し、「保存」ボタンを押します。「保存」ボタンを押さないと設定が反映されないのでご注意ください。Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4199838678392698089.post-59639766010250032732019-04-07T17:00:00.002+09:002019-08-29T23:10:21.741+09:00Angular in-memory-web-api を使う<script>
location.href = "https://watermargin.net/programming/angular/in-memory-web-api/";
</script><br />
Angular が提供している in memory web api の使い方を紹介します。<br />
アプリケーションを開発する際に、サーバー側で REST API を用意するほどではないモックアップ作成時に便利な簡易 REST API です。<br />
<br />
angular/in-memory-web-api<br />
<a href="https://github.com/angular/in-memory-web-api" target="_blank">https://github.com/angular/in-memory-web-api</a><br />
<br />
<br />
<h4>パッケージのインストール</h4><pre class="rich-diff-level-zero" style="-webkit-text-stroke-width: 0px; background-color: #f6f8fa; border-radius: 3px; box-sizing: border-box; color: #24292e; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; line-height: 1.45; margin-bottom: 16px; margin-left: 15px; margin-top: 0px; orphans: 2; overflow-wrap: normal; overflow: auto; padding: 10px 20px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px;">npm i angular-in-memory-web-api</pre><br />
<br />
<br />
<h4>InMemoryDbService 実装クラスの用意</h4>InMemoryDbService 実装クラスで、createDb() メソッド内にデータを実装しておきます。<br />
<br />
product.service.ts<br />
<br />
<pre class="rich-diff-level-zero" style="-webkit-text-stroke-width: 0px; background-color: #f6f8fa; border-radius: 3px; box-sizing: border-box; color: #24292e; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; line-height: 1.45; margin-bottom: 16px; margin-left: 15px; margin-top: 0px; orphans: 2; overflow-wrap: normal; overflow: auto; padding: 10px 20px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px;"><span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">import</span> { <span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">InMemoryDbService</span> } <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">from</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>angular-in-memory-web-api<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>;
<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">export</span> <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">class</span> <span class="pl-en rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">ProductService</span> <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">implements</span> <span class="pl-e rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">InMemoryDbService</span> {
createDb() {
<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;"><span class="pl-k" style="box-sizing: border-box; color: #d73a49;">const</span></span> products <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">=</span> [
{ id: <span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">1</span>, name: <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>orange juice<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span> },
{ id: <span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">2</span>, name: <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>green tea<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span> },
{ id: <span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">3</span>, name: <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>oolong tea<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span> },
{ id: <span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">4</span>, name: <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>tomato juice<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span> }
];
<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">return</span> { <span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">products</span> };
}
}</pre><br />
<br />
<h4>HttpClientInMemoryWebApiModule のインポート</h4>InMemoryDbService 実装クラスをモジュールに登録します。<br />
<br />
app.module.ts<br />
<pre class="rich-diff-level-zero" style="-webkit-text-stroke-width: 0px; background-color: #f6f8fa; border-radius: 3px; box-sizing: border-box; color: #24292e; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; line-height: 1.45; margin-bottom: 16px; margin-left: 15px; margin-top: 0px; orphans: 2; overflow-wrap: normal; overflow: auto; padding: 10px 20px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px;"><span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">import</span> { <span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">BrowserModule</span> } <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">from</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>@angular/platform-browser<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>;
<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">import</span> { <span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">NgModule</span> } <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">from</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>@angular/core<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>;
<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">import</span> { <span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">HttpClientModule</span> } <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">from</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>@angular/common/http<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>;
<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">import</span> { <span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">HttpClientInMemoryWebApiModule</span> } <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">from</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>angular-in-memory-web-api<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>;
<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">import</span> { <span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">AppComponent</span> } <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">from</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>./app.component<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>;
<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">import</span> { <span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">ProductService</span> } <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">from</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>./product.service<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>;
@<span class="pl-en rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">NgModule</span>({
declarations: [
<span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">AppComponent</span>
],
imports: [
<span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">BrowserModule</span>,
<span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">HttpClientModule</span>,
<span style="color: red;"><b><span class="pl-smi rich-diff-level-one" style="box-sizing: border-box;">HttpClientInMemoryWebApiModule</span>.<span class="pl-en rich-diff-level-one" style="box-sizing: border-box;">forRoot</span>(<span class="pl-smi rich-diff-level-one" style="box-sizing: border-box;">ProductService</span>)</b></span>
],
providers: [],
bootstrap: [<span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">AppComponent</span>]
})
<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">export</span> <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">class</span> <span class="pl-en rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">AppModule</span> { }</pre><br />
<br />
<br />
<h4>API の呼び出し</h4>in-memory-web-api への通信は、HttpClient モジュールを通じて行うことができます。(HttpClient の通信を捕まえて、createDb() メソッドに実装しているインメモリデータを返します。)<br />
<br />
app.component.ts<br />
<pre class="rich-diff-level-zero" style="-webkit-text-stroke-width: 0px; background-color: #f6f8fa; border-radius: 3px; box-sizing: border-box; color: #24292e; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; line-height: 1.45; margin-bottom: 16px; margin-left: 15px; margin-top: 0px; orphans: 2; overflow-wrap: normal; overflow: auto; padding: 10px 20px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px;"><span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">import</span> { <span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">ProductService</span> } <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">from</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>./product.service<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>;
<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">import</span> { <span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">Component</span> } <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">from</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>@angular/core<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>;
<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">import</span> { <span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">HttpClient</span> } <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">from</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>@angular/common/http<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>;
@<span class="pl-en rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">Component</span>({
selector: <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>app-root<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>,
templateUrl: <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>./app.component.html<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>,
styleUrls: [<span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>./app.component.scss<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>]
})
<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">export</span> <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">class</span> <span class="pl-en rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">AppComponent</span> {
<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">constructor</span>(<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">private</span> <span class="pl-v rich-diff-level-one" style="box-sizing: border-box; color: #e36209;">http</span><span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">:</span> <span class="pl-en rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">HttpClient</span>) { }
title <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">=</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>InMemoryDbService<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>;
<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">async</span> getProducts() {
<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;"><span class="pl-k" style="box-sizing: border-box; color: #d73a49;">const</span></span> res <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">=</span> <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">await</span> <span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">this</span>.<span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">http</span>.<span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">get</span>(<span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>/api/products/<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>).<span class="pl-en rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">toPromise</span>();
<span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">console</span>.<span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">log</span>(<span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">res</span>);
}
}</pre><br />
app.component.html<br />
<pre class="rich-diff-level-zero" style="-webkit-text-stroke-width: 0px; background-color: #f6f8fa; border-radius: 3px; box-sizing: border-box; color: #24292e; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; line-height: 1.45; margin-bottom: 16px; margin-left: 15px; margin-top: 0px; orphans: 2; overflow-wrap: normal; overflow: auto; padding: 10px 20px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px;"><<span class="pl-ent rich-diff-level-one" style="box-sizing: border-box; color: #22863a;">button</span> <span class="pl-e rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">(click)</span>=<span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">"</span>getProducts()<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">"</span></span>>get products</<span class="pl-ent rich-diff-level-one" style="box-sizing: border-box; color: #22863a;">button</span>></pre><br />
<iframe src="https://stackblitz.com/edit/angular-vytb5h?embed=1" style="height: 600px; width: 100%;"></iframe><br />
<br />
Angular に関連するトピックは次のページにまとめてあります。<br />
<br />
Angular 機能紹介一覧<br />
<a href="https://kainobi2.blogspot.com/2019/02/angular.html" target="_blank">https://kainobi2.blogspot.com/2019/02/angular.html</a> Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4199838678392698089.post-82158660361649152662019-03-20T12:59:00.000+09:002019-03-20T12:59:25.745+09:00IE11 で Angular プロジェクトを実行するための polyfillsよく調べるので備忘録として残しておきます。<br />
<br />
<pre class="rich-diff-level-zero" style="background-color: #f6f8fa; border-radius: 3px; box-sizing: border-box; color: #24292e; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; line-height: 1.45; margin-bottom: 16px; margin-left: 15px; overflow-wrap: normal; overflow: auto; padding: 10px 20px;"><span class="pl-c rich-diff-level-one" style="box-sizing: border-box; color: #6a737d;"><span class="pl-c" style="box-sizing: border-box;">/**</span> IE10 and IE11 requires the following for NgClass support on SVG elements <span class="pl-c" style="box-sizing: border-box;">*/</span></span>
<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">import</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box;">'</span>classlist.js<span class="pl-pds" style="box-sizing: border-box;">'</span></span>; <span class="pl-c rich-diff-level-one" style="box-sizing: border-box; color: #6a737d;"><span class="pl-c" style="box-sizing: border-box;">//</span> Run `npm install --save classlist.js`.</span>
<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">import</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box;">'</span>core-js/es6/symbol<span class="pl-pds" style="box-sizing: border-box;">'</span></span>;
<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">import</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box;">'</span>core-js/es6/object<span class="pl-pds" style="box-sizing: border-box;">'</span></span>;
<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">import</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box;">'</span>core-js/es6/function<span class="pl-pds" style="box-sizing: border-box;">'</span></span>;
<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">import</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box;">'</span>core-js/es6/parse-int<span class="pl-pds" style="box-sizing: border-box;">'</span></span>;
<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">import</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box;">'</span>core-js/es6/parse-float<span class="pl-pds" style="box-sizing: border-box;">'</span></span>;
<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">import</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box;">'</span>core-js/es6/number<span class="pl-pds" style="box-sizing: border-box;">'</span></span>;
<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">import</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box;">'</span>core-js/es6/math<span class="pl-pds" style="box-sizing: border-box;">'</span></span>;
<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">import</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box;">'</span>core-js/es6/string<span class="pl-pds" style="box-sizing: border-box;">'</span></span>;
<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">import</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box;">'</span>core-js/es6/date<span class="pl-pds" style="box-sizing: border-box;">'</span></span>;
<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">import</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box;">'</span>core-js/es6/array<span class="pl-pds" style="box-sizing: border-box;">'</span></span>;
<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">import</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box;">'</span>core-js/es6/regexp<span class="pl-pds" style="box-sizing: border-box;">'</span></span>;
<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">import</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box;">'</span>core-js/es6/map<span class="pl-pds" style="box-sizing: border-box;">'</span></span>;
<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">import</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box;">'</span>core-js/es6/weak-map<span class="pl-pds" style="box-sizing: border-box;">'</span></span>;
<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">import</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box;">'</span>core-js/es6/set<span class="pl-pds" style="box-sizing: border-box;">'</span></span>;
<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">import</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box;">'</span>core-js/es6/reflect<span class="pl-pds" style="box-sizing: border-box;">'</span></span>;
<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">import</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box;">'</span>core-js/es7/reflect<span class="pl-pds" style="box-sizing: border-box;">'</span></span>;
<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">import</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box;">'</span>core-js/es7/object<span class="pl-pds" style="box-sizing: border-box;">'</span></span>;</pre>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4199838678392698089.post-52052735705824413072019-03-17T11:55:00.000+09:002019-03-17T11:55:01.679+09:00Blogger ナレッジベース用テンプレートBlogger でサイトをナレッジベースとして利用したいと思い、テンプレートを探してみました。2つほど便利なテンプレートを見つけました。<br />
<br />
HelpDesk <br />
<a href="https://abtemplates.com/2014/04/helpdesk-blogger-template/" target="_blank">https://abtemplates.com/2014/04/helpdesk-blogger-template/</a><br />
<br />
Manual - Online <br />
<a href="https://www.templateism.com/2015/12/manual-online-docs-responsive-blogger-template.html" target="_blank">https://www.templateism.com/2015/12/manual-online-docs-responsive-blogger-template.html</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4199838678392698089.post-45502927201077610732019-03-15T08:55:00.000+09:002019-03-15T08:55:14.809+09:00Visual Studio Code のタイトルバーの外観変更Visual Studio Code のタイトルバーの外観を、クラッシックなものに変更することができます。設定画面の Title Bar Style で 'native' を選択し、再起動で OK です。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3YtzTdnvnLZdbhcsFGGR4fy8M0KsCY6VSlW8jmrloEwwIqRjWtpkNPMFUSf4Ob9xXh2RKk5lKKCov2HvNf_TpwxmlS83_YU_MgEr-ycAbyXHnhOq61Xu8P9HWS7_M3djrJmNdzfmYi_bo/s1600/VS+Code+title+bar+style.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="403" data-original-width="904" height="178" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3YtzTdnvnLZdbhcsFGGR4fy8M0KsCY6VSlW8jmrloEwwIqRjWtpkNPMFUSf4Ob9xXh2RKk5lKKCov2HvNf_TpwxmlS83_YU_MgEr-ycAbyXHnhOq61Xu8P9HWS7_M3djrJmNdzfmYi_bo/s400/VS+Code+title+bar+style.PNG" width="400" /></a></div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4199838678392698089.post-33767307406790713312019-03-14T19:23:00.000+09:002019-03-15T19:23:20.832+09:00Azure FTP のユーザー名とパスワードの確認方法Azure の App Service から、<br />
<br />
<b>デプロイ センター > 展開の資格情報 > アプリの資格情報</b><br />
<br />
をたどると確認することができます。 Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4199838678392698089.post-82806637157279395952019-03-09T22:36:00.000+09:002019-03-09T22:36:18.410+09:00Angular Firebase による Google アカウント認証(ログイン・ログアウト)の実装方法Angular アプリケーションで、Firebase にログイン・ログアウトの実装方法を紹介します。予め、Firebase が使えるようになっていることが前提になります。<br />
<br />
準備として、Firebase の「Authentication」画面で、Google を有効にしておきます。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDOZkcR8lCK_Muco_Jvxn_op9sHAPUGaNJS21co9SdDVYu5XqA_TdvlTAgpwwUXTGG614-walony5vd_V7tEhxTtbMZKIVIE7ifX4mEVrNn6dUprRDn69UBJ1HQ-MSqARomfX5E0wsGo84/s1600/angular+auth.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="536" data-original-width="570" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDOZkcR8lCK_Muco_Jvxn_op9sHAPUGaNJS21co9SdDVYu5XqA_TdvlTAgpwwUXTGG614-walony5vd_V7tEhxTtbMZKIVIE7ifX4mEVrNn6dUprRDn69UBJ1HQ-MSqARomfX5E0wsGo84/s1600/angular+auth.png" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<br />
<br />
アプリケーション側では、まずはパッケージとして firebase と angular/fire をインストールします。<br />
<pre class="rich-diff-level-zero" style="background-color: #f6f8fa; border-radius: 3px; box-sizing: border-box; color: #24292e; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; line-height: 1.45; margin-bottom: 16px; margin-left: 15px; overflow-wrap: normal; overflow: auto; padding: 10px 20px;">npm i firebase <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">@</span>angular/fire</pre>
<br />
<br />
Angular アプリケーションの environment.ts に、Firebase の設定情報を転記します。設定情報は、Firebase の「Project Overview」から取得してきます。<br />
<br />
environment.ts<br />
<pre class="rich-diff-level-zero" style="background-color: #f6f8fa; border-radius: 3px; box-sizing: border-box; color: #24292e; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; line-height: 1.45; margin-bottom: 16px; margin-left: 15px; overflow-wrap: normal; overflow: auto; padding: 10px 20px;"><span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">export</span> <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">const</span> environment <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">=</span> {
production: <span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">false</span>,
firebase: {
apiKey: <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box;">'</span>xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx<span class="pl-pds" style="box-sizing: border-box;">'</span></span>,
authDomain: <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box;">'</span>xxxx-xxxx-xxxxx.xxxxxxxxxxx.xxx<span class="pl-pds" style="box-sizing: border-box;">'</span></span>,
databaseURL: <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box;">'</span>xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx<span class="pl-pds" style="box-sizing: border-box;">'</span></span>,
projectId: <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box;">'</span>xxxx-xxxx-xxxxx<span class="pl-pds" style="box-sizing: border-box;">'</span></span>,
storageBucket: <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box;">'x</span>xxx-xxxx-xxxxx.xxxxxxx.xxx<span class="pl-pds" style="box-sizing: border-box;">'</span></span>,
messagingSenderId: <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box;">'</span>xxxxxxxxxxxx<span class="pl-pds" style="box-sizing: border-box;">'</span></span>
}
};</pre>
<br />
<br />
AppModule で AngularFireModule と AngularFireAuthModule をインポートします。environment.ts で転記した Firebase の設定情報を、AngularFireModule.initializeApp の引数として渡します。<br />
<br />
app.module.ts<br />
<pre class="rich-diff-level-zero" style="border-radius: 3px; box-sizing: border-box; color: #24292e; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; line-height: 1.45; margin-bottom: 16px; margin-left: 15px; overflow-wrap: normal; overflow: auto; padding: 10px 20px;"><span class="pl-k rich-diff-level-one" style="background-color: #f6f8fa; box-sizing: border-box; color: #d73a49;">import</span><span style="background-color: #f6f8fa;"> { </span><span class="pl-smi rich-diff-level-one" style="background-color: #f6f8fa; box-sizing: border-box;">BrowserModule</span><span style="background-color: #f6f8fa;"> } </span><span class="pl-k rich-diff-level-one" style="background-color: #f6f8fa; box-sizing: border-box; color: #d73a49;">from</span><span style="background-color: #f6f8fa;"> </span><span class="pl-s rich-diff-level-one" style="background-color: #f6f8fa; box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box;">'</span>@angular/platform-browser<span class="pl-pds" style="box-sizing: border-box;">'</span></span><span style="background-color: #f6f8fa;">;
</span><span class="pl-k rich-diff-level-one" style="background-color: #f6f8fa; box-sizing: border-box; color: #d73a49;">import</span><span style="background-color: #f6f8fa;"> { </span><span class="pl-smi rich-diff-level-one" style="background-color: #f6f8fa; box-sizing: border-box;">NgModule</span><span style="background-color: #f6f8fa;"> } </span><span class="pl-k rich-diff-level-one" style="background-color: #f6f8fa; box-sizing: border-box; color: #d73a49;">from</span><span style="background-color: #f6f8fa;"> </span><span class="pl-s rich-diff-level-one" style="background-color: #f6f8fa; box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box;">'</span>@angular/core<span class="pl-pds" style="box-sizing: border-box;">'</span></span><span style="background-color: #f6f8fa;">;
</span><span class="pl-k rich-diff-level-one" style="background-color: #f6f8fa; box-sizing: border-box; color: #d73a49;">import</span><span style="background-color: #f6f8fa;"> { </span><span class="pl-smi rich-diff-level-one" style="background-color: #f6f8fa; box-sizing: border-box;">environment</span><span style="background-color: #f6f8fa;"> } </span><span class="pl-k rich-diff-level-one" style="background-color: #f6f8fa; box-sizing: border-box; color: #d73a49;">from</span><span style="background-color: #f6f8fa;"> </span><span class="pl-s rich-diff-level-one" style="background-color: #f6f8fa; box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box;">'</span>../environments/environment<span class="pl-pds" style="box-sizing: border-box;">'</span></span><span style="background-color: #f6f8fa;">;
</span><span style="background-color: yellow;"><span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">import</span> { <span class="pl-smi rich-diff-level-one" style="box-sizing: border-box;">AngularFireModule</span> } <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">from</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box;">'</span>@angular/fire<span class="pl-pds" style="box-sizing: border-box;">'</span></span>;</span><span style="background-color: #f6f8fa;">
</span><span style="background-color: yellow;"><span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">import</span> { <span class="pl-smi rich-diff-level-one" style="box-sizing: border-box;">AngularFireAuthModule</span> } <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">from</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box;">'</span>@angular/fire/auth<span class="pl-pds" style="box-sizing: border-box;">'</span></span>;</span><span style="background-color: #f6f8fa;">
</span><span class="pl-k rich-diff-level-one" style="background-color: #f6f8fa; box-sizing: border-box; color: #d73a49;">import</span><span style="background-color: #f6f8fa;"> { </span><span class="pl-smi rich-diff-level-one" style="background-color: #f6f8fa; box-sizing: border-box;">AppComponent</span><span style="background-color: #f6f8fa;"> } </span><span class="pl-k rich-diff-level-one" style="background-color: #f6f8fa; box-sizing: border-box; color: #d73a49;">from</span><span style="background-color: #f6f8fa;"> </span><span class="pl-s rich-diff-level-one" style="background-color: #f6f8fa; box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box;">'</span>./app.component<span class="pl-pds" style="box-sizing: border-box;">'</span></span><span style="background-color: #f6f8fa;">;
@</span><span class="pl-en rich-diff-level-one" style="background-color: #f6f8fa; box-sizing: border-box; color: #6f42c1;">NgModule</span><span style="background-color: #f6f8fa;">({
declarations: [
</span><span class="pl-smi rich-diff-level-one" style="background-color: #f6f8fa; box-sizing: border-box;">AppComponent</span><span style="background-color: #f6f8fa;">
],
imports: [
</span><span class="pl-smi rich-diff-level-one" style="background-color: #f6f8fa; box-sizing: border-box;">BrowserModule</span><span style="background-color: #f6f8fa;">,
</span><span class="pl-smi rich-diff-level-one" style="box-sizing: border-box;"><span style="background-color: yellow;">AngularFireModule</span></span><span style="background-color: yellow;">.<span class="pl-en rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">initializeApp</span>(<span class="pl-smi rich-diff-level-one" style="box-sizing: border-box;">environment</span>.<span class="pl-smi rich-diff-level-one" style="box-sizing: border-box;">firebase</span>), <span class="pl-c rich-diff-level-one" style="box-sizing: border-box; color: #6a737d;"><span class="pl-c" style="box-sizing: border-box;">//</span> 追加</span></span><span style="background-color: #f6f8fa;">
</span><span style="background-color: yellow;"><span class="pl-smi rich-diff-level-one" style="box-sizing: border-box;">AngularFireAuthModule</span>, <span class="pl-c rich-diff-level-one" style="box-sizing: border-box; color: #6a737d;"><span class="pl-c" style="box-sizing: border-box;">//</span> 追加</span></span><span style="background-color: #f6f8fa;">
],
providers: [],
bootstrap: [</span><span class="pl-smi rich-diff-level-one" style="background-color: #f6f8fa; box-sizing: border-box;">AppComponent</span><span style="background-color: #f6f8fa;">]
})
</span><span class="pl-k rich-diff-level-one" style="background-color: #f6f8fa; box-sizing: border-box; color: #d73a49;">export</span><span style="background-color: #f6f8fa;"> </span><span class="pl-k rich-diff-level-one" style="background-color: #f6f8fa; box-sizing: border-box; color: #d73a49;">class</span><span style="background-color: #f6f8fa;"> </span><span class="pl-en rich-diff-level-one" style="background-color: #f6f8fa; box-sizing: border-box; color: #6f42c1;">AppModule</span><span style="background-color: #f6f8fa;"> { }</span></pre>
<br />
<br />
ngOnInit で、AngularFireAuth の authState を変数で参照します。ログイン時に呼び出す login メソッドでは、AngularFireAuth の auth.signInWithRedirect メソッドを利用します。ログアウト時に呼び出す logout メソッドでは、auth.signOut メソッドを利用します。<br />
<br />
app.component.ts<br />
<pre class="rich-diff-level-zero" style="border-radius: 3px; box-sizing: border-box; color: #24292e; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; line-height: 1.45; margin-bottom: 16px; margin-left: 15px; overflow-wrap: normal; overflow: auto; padding: 10px 20px;"><span style="background-color: #f6f8fa;"><span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">import</span> { <span class="pl-smi rich-diff-level-one" style="box-sizing: border-box;">Component</span>, <span class="pl-smi rich-diff-level-one" style="box-sizing: border-box;">OnInit</span> } <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">from</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box;">'</span>@angular/core<span class="pl-pds" style="box-sizing: border-box;">'</span></span>;
<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">import</span> <span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">*</span> <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">as</span> <span class="pl-smi rich-diff-level-one" style="box-sizing: border-box;">firebase</span> <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">from</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box;">'</span>firebase<span class="pl-pds" style="box-sizing: border-box;">'</span></span>;
<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">import</span> { <span class="pl-smi rich-diff-level-one" style="box-sizing: border-box;">AngularFireAuth</span> } <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">from</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box;">'</span>@angular/fire/auth<span class="pl-pds" style="box-sizing: border-box;">'</span></span>;
<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">import</span> { <span class="pl-smi rich-diff-level-one" style="box-sizing: border-box;">Observable</span> } <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">from</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box;">'</span>rxjs<span class="pl-pds" style="box-sizing: border-box;">'</span></span>;
@<span class="pl-en rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">Component</span>({
selector: <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box;">'</span>app-root<span class="pl-pds" style="box-sizing: border-box;">'</span></span>,
templateUrl: <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box;">'</span>./app.component.html<span class="pl-pds" style="box-sizing: border-box;">'</span></span>,
styleUrls: [<span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box;">'</span>./app.component.css<span class="pl-pds" style="box-sizing: border-box;">'</span></span>]
})
<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">export</span> <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">class</span> <span class="pl-en rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">AppComponent</span> <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">implements</span> <span class="pl-e rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">OnInit</span> {
title <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">=</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box;">'</span>auth-test<span class="pl-pds" style="box-sizing: border-box;">'</span></span>;
</span><span style="background-color: yellow;">user$<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">:</span> <span class="pl-en rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">Observable</span><<span class="pl-en rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">firebase</span>.<span class="pl-en rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">User</span>>;</span><span style="background-color: #f6f8fa;">
</span><span class="pl-k rich-diff-level-one" style="background-color: #f6f8fa; box-sizing: border-box; color: #d73a49;">constructor</span><span style="background-color: #f6f8fa;">(</span><span class="pl-k rich-diff-level-one" style="background-color: #f6f8fa; box-sizing: border-box; color: #d73a49;">private</span><span style="background-color: #f6f8fa;"> </span><span class="pl-v rich-diff-level-one" style="background-color: #f6f8fa; box-sizing: border-box; color: #e36209;">afAuth</span><span class="pl-k rich-diff-level-one" style="background-color: #f6f8fa; box-sizing: border-box; color: #d73a49;">:</span><span style="background-color: #f6f8fa;"> </span><span class="pl-en rich-diff-level-one" style="background-color: #f6f8fa; box-sizing: border-box; color: #6f42c1;">AngularFireAuth</span><span style="background-color: #f6f8fa;">) { }
ngOnInit() {
</span><span class="pl-c1 rich-diff-level-one" style="background-color: #f6f8fa; box-sizing: border-box; color: #005cc5;">this</span><span style="background-color: #f6f8fa;">.</span><span class="pl-smi rich-diff-level-one" style="background-color: #f6f8fa; box-sizing: border-box;">user$</span><span style="background-color: #f6f8fa;"> </span><span class="pl-k rich-diff-level-one" style="background-color: #f6f8fa; box-sizing: border-box; color: #d73a49;">=</span><span style="background-color: #f6f8fa;"> </span><span class="pl-c1 rich-diff-level-one" style="background-color: #f6f8fa; box-sizing: border-box; color: #005cc5;">this</span><span style="background-color: #f6f8fa;">.</span><span class="pl-smi rich-diff-level-one" style="background-color: #f6f8fa; box-sizing: border-box;">afAuth</span><span style="background-color: #f6f8fa;">.</span><span class="pl-smi rich-diff-level-one" style="background-color: #f6f8fa; box-sizing: border-box;">authState</span><span style="background-color: #f6f8fa;">;
}
login() {
</span><span style="background-color: yellow;"><span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">const</span> provider <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">=</span> <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">new</span> <span class="pl-en rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">firebase</span>.<span class="pl-en rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">auth</span>.<span class="pl-en rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">GoogleAuthProvider</span>();</span><span style="background-color: #f6f8fa;">
</span><span style="background-color: yellow;"><span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">this</span>.<span class="pl-smi rich-diff-level-one" style="box-sizing: border-box;">afAuth</span>.<span class="pl-smi rich-diff-level-one" style="box-sizing: border-box;">auth</span>.<span class="pl-en rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">signInWithRedirect</span>(<span class="pl-smi rich-diff-level-one" style="box-sizing: border-box;">provider</span>);</span><span style="background-color: #f6f8fa;">
}
logout() {
</span><span style="background-color: yellow;"><span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">this</span>.<span class="pl-smi rich-diff-level-one" style="box-sizing: border-box;">afAuth</span>.<span class="pl-smi rich-diff-level-one" style="box-sizing: border-box;">auth</span>.<span class="pl-en rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">signOut</span>();</span><span style="background-color: #f6f8fa;">
}
}</span></pre>
<br />
<br />
ユーザーがログインしていれば、ユーザー名を表示し、ログインしていなければ、ログイン用のボタンを表示します。ログインボタンを押すと、Google アカウントでのログイン画面が表示されるので、ログインします。すると、ログインしたユーザー名が画面に表示されます。<br />
<br />
app.component.html<br />
<pre class="rich-diff-level-zero" style="background-color: #f6f8fa; border-radius: 3px; box-sizing: border-box; color: #24292e; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; line-height: 1.45; margin-bottom: 16px; margin-left: 15px; overflow-wrap: normal; overflow: auto; padding: 10px 20px;"><<span class="pl-ent rich-diff-level-one" style="box-sizing: border-box; color: #22863a;">ng-template</span> <span class="pl-e rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">#loginButton</span>>
<<span class="pl-ent rich-diff-level-one" style="box-sizing: border-box; color: #22863a;">button</span> <span class="pl-e rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">(click)</span>=<span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box;">"</span>login()<span class="pl-pds" style="box-sizing: border-box;">"</span></span>>Login with Google</<span class="pl-ent rich-diff-level-one" style="box-sizing: border-box; color: #22863a;">button</span>>
</<span class="pl-ent rich-diff-level-one" style="box-sizing: border-box; color: #22863a;">ng-template</span>>
<<span class="pl-ent rich-diff-level-one" style="box-sizing: border-box; color: #22863a;">div</span> <span class="pl-e rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">*ngIf</span>=<span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box;">"</span>user$ | async as user; else loginButton<span class="pl-pds" style="box-sizing: border-box;">"</span></span>>
ユーザー : {{user.displayName}}
<<span class="pl-ent rich-diff-level-one" style="box-sizing: border-box; color: #22863a;">button</span> <span class="pl-e rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">(click)</span>=<span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box;">"</span>logout()<span class="pl-pds" style="box-sizing: border-box;">"</span></span>>Logout</<span class="pl-ent rich-diff-level-one" style="box-sizing: border-box; color: #22863a;">button</span>>
</<span class="pl-ent rich-diff-level-one" style="box-sizing: border-box; color: #22863a;">div</span>></pre>
<br />
以上、Google アカウントによるログイン認証の方法でした。<br />
<br />
<br />
Angular に関連するトピックは次のページにまとめてあります。<br />
<br />
Angular 機能紹介一覧<br />
<a href="https://kainobi2.blogspot.com/2019/02/angular.html" target="_blank">https://kainobi2.blogspot.com/2019/02/angular.html</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4199838678392698089.post-73843740882061116562019-03-09T14:09:00.000+09:002019-03-09T19:34:42.036+09:00Angular モジュールの lazy loading (遅延読み込み)Angular ではルーティング時に呼び出すモジュールを、アプリケーション起動時ではなく、初回ルーティング時に読み込む仕組み(lazy loading, 遅延読み込み)が提供されています。<br />
<br />
今回は lazy loading の設定方法を紹介します。<br />
<br />
<h4>
アプリケーション作成</h4>
まずはアプリケーションを作成します。Angular CLI を利用すると、ルーティング機能を追加するか聞かれるので、y(es) とします。<br />
<br />
<pre class="rich-diff-level-zero" style="background-color: #f6f8fa; border-radius: 3px; box-sizing: border-box; color: #24292e; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; line-height: 1.45; margin-bottom: 16px; margin-left: 15px; overflow-wrap: normal; overflow: auto; padding: 10px 20px;">ng new routing-test
? Would you like to add Angular routing? (y/N) y</pre>
そうすると、ルーティング機能が追加されたアプリケーションが出来上がります。app-routing.module.ts があること、app.module.ts に AppRoutingModule がインポートされていることを確認することができます。<br />
<br />
app.module.ts<br />
<pre class="rich-diff-level-zero" style="border-radius: 3px; box-sizing: border-box; color: #24292e; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; line-height: 1.45; margin-bottom: 16px; margin-left: 15px; overflow-wrap: normal; overflow: auto; padding: 10px 20px;"><span class="pl-k rich-diff-level-one" style="background-color: #f6f8fa; box-sizing: border-box; color: #d73a49;">import</span><span style="background-color: #f6f8fa;"> { </span><span class="pl-smi rich-diff-level-one" style="background-color: #f6f8fa; box-sizing: border-box;">BrowserModule</span><span style="background-color: #f6f8fa;"> } </span><span class="pl-k rich-diff-level-one" style="background-color: #f6f8fa; box-sizing: border-box; color: #d73a49;">from</span><span style="background-color: #f6f8fa;"> </span><span class="pl-s rich-diff-level-one" style="background-color: #f6f8fa; box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box;">'</span>@angular/platform-browser<span class="pl-pds" style="box-sizing: border-box;">'</span></span><span style="background-color: #f6f8fa;">;
</span><span class="pl-k rich-diff-level-one" style="background-color: #f6f8fa; box-sizing: border-box; color: #d73a49;">import</span><span style="background-color: #f6f8fa;"> { </span><span class="pl-smi rich-diff-level-one" style="background-color: #f6f8fa; box-sizing: border-box;">NgModule</span><span style="background-color: #f6f8fa;"> } </span><span class="pl-k rich-diff-level-one" style="background-color: #f6f8fa; box-sizing: border-box; color: #d73a49;">from</span><span style="background-color: #f6f8fa;"> </span><span class="pl-s rich-diff-level-one" style="background-color: #f6f8fa; box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box;">'</span>@angular/core<span class="pl-pds" style="box-sizing: border-box;">'</span></span><span style="background-color: #f6f8fa;">;
</span><span style="background-color: yellow;"><span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">import</span> { <span class="pl-smi rich-diff-level-one" style="box-sizing: border-box;">AppRoutingModule</span> } <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">from</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box;">'</span>./app-routing.module<span class="pl-pds" style="box-sizing: border-box;">'</span></span>;</span><span style="background-color: #f6f8fa;">
</span><span class="pl-k rich-diff-level-one" style="background-color: #f6f8fa; box-sizing: border-box; color: #d73a49;">import</span><span style="background-color: #f6f8fa;"> { </span><span class="pl-smi rich-diff-level-one" style="background-color: #f6f8fa; box-sizing: border-box;">AppComponent</span><span style="background-color: #f6f8fa;"> } </span><span class="pl-k rich-diff-level-one" style="background-color: #f6f8fa; box-sizing: border-box; color: #d73a49;">from</span><span style="background-color: #f6f8fa;"> </span><span class="pl-s rich-diff-level-one" style="background-color: #f6f8fa; box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box;">'</span>./app.component<span class="pl-pds" style="box-sizing: border-box;">'</span></span><span style="background-color: #f6f8fa;">;
@</span><span class="pl-en rich-diff-level-one" style="background-color: #f6f8fa; box-sizing: border-box; color: #6f42c1;">NgModule</span><span style="background-color: #f6f8fa;">({
declarations: [
</span><span class="pl-smi rich-diff-level-one" style="background-color: #f6f8fa; box-sizing: border-box;">AppComponent</span><span style="background-color: #f6f8fa;">
],
imports: [
</span><span class="pl-smi rich-diff-level-one" style="background-color: #f6f8fa; box-sizing: border-box;">BrowserModule</span><span style="background-color: #f6f8fa;">,
</span><span class="pl-smi rich-diff-level-one" style="background-color: yellow; box-sizing: border-box;">AppRoutingModule</span><span style="background-color: #f6f8fa;">
],
providers: [],
bootstrap: [</span><span class="pl-smi rich-diff-level-one" style="background-color: #f6f8fa; box-sizing: border-box;">AppComponent</span><span style="background-color: #f6f8fa;">]
})
</span><span class="pl-k rich-diff-level-one" style="background-color: #f6f8fa; box-sizing: border-box; color: #d73a49;">export</span><span style="background-color: #f6f8fa;"> </span><span class="pl-k rich-diff-level-one" style="background-color: #f6f8fa; box-sizing: border-box; color: #d73a49;">class</span><span style="background-color: #f6f8fa;"> </span><span class="pl-en rich-diff-level-one" style="background-color: #f6f8fa; box-sizing: border-box; color: #6f42c1;">AppModule</span><span style="background-color: #f6f8fa;"> { }</span></pre>
<br />
<br />
<h4>
モジュールとコンポーネントの追加</h4>
次に、ルーティング対象のモジュールと、そのモジュール配下にコンポーネントを作成します。<br />
<br />
<pre class="rich-diff-level-zero" style="background-color: #f6f8fa; border-radius: 3px; box-sizing: border-box; color: #24292e; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; line-height: 1.45; margin-bottom: 16px; margin-left: 15px; overflow-wrap: normal; overflow: auto; padding: 10px 20px;">ng g m dashboard --routing
ng g c dashboard/list</pre>
<br />
dashboard.module.ts に ListComponent が登録されていることを確認します。<br />
<br />
<br />
<h4>
ルーティングモジュールの編集</h4>
app-routing.module.ts の routes プロパティに、次のルーティング情報を指定します。<span style="background-color: yellow;">dashboard</span> という URL (path)が呼ばれたときに、<span style="background-color: yellow;">dashboard</span> フォルダ配下の <span style="background-color: yellow;">dashboard.module.ts</span> ファイルの <span style="background-color: yellow;">DashboardModule</span> クラスを呼び出す、という指定を行っています。loadChildren に DashboardModule の参照を指定することで、lazy loading (遅延読み込み)とすることができます。<br />
<br />
app-routing.module.ts<br />
<pre class="rich-diff-level-zero" style="border-radius: 3px; box-sizing: border-box; color: #24292e; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; line-height: 1.45; margin-bottom: 16px; margin-left: 15px; overflow-wrap: normal; overflow: auto; padding: 10px 20px;"><span style="background-color: #f6f8fa;"><span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">import</span> { <span class="pl-smi rich-diff-level-one" style="box-sizing: border-box;">NgModule</span> } <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">from</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box;">'</span>@angular/core<span class="pl-pds" style="box-sizing: border-box;">'</span></span>;
<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">import</span> { <span class="pl-smi rich-diff-level-one" style="box-sizing: border-box;">Routes</span>, <span class="pl-smi rich-diff-level-one" style="box-sizing: border-box;">RouterModule</span> } <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">from</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box;">'</span>@angular/router<span class="pl-pds" style="box-sizing: border-box;">'</span></span>;
<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">const</span> routes<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">:</span> <span class="pl-en rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">Routes</span> <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">=</span> [
{
</span><span style="background-color: yellow;">path: <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box;">'</span>dashboard<span class="pl-pds" style="box-sizing: border-box;">'</span></span>,</span><span style="background-color: #f6f8fa;">
</span><span style="background-color: yellow;">loadChildren: <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box;">'</span>./dashboard/dashboard.module#DashboardModule<span class="pl-pds" style="box-sizing: border-box;">'</span></span></span><span style="background-color: #f6f8fa;">
}
];
@</span><span class="pl-en rich-diff-level-one" style="background-color: #f6f8fa; box-sizing: border-box; color: #6f42c1;">NgModule</span><span style="background-color: #f6f8fa;">({
imports: [</span><span class="pl-smi rich-diff-level-one" style="background-color: #f6f8fa; box-sizing: border-box;">RouterModule</span><span style="background-color: #f6f8fa;">.</span><span class="pl-en rich-diff-level-one" style="background-color: #f6f8fa; box-sizing: border-box; color: #6f42c1;">forRoot</span><span style="background-color: #f6f8fa;">(</span><span class="pl-smi rich-diff-level-one" style="background-color: #f6f8fa; box-sizing: border-box;">routes</span><span style="background-color: #f6f8fa;">)],
exports: [</span><span class="pl-smi rich-diff-level-one" style="background-color: #f6f8fa; box-sizing: border-box;">RouterModule</span><span style="background-color: #f6f8fa;">]
})
</span><span class="pl-k rich-diff-level-one" style="background-color: #f6f8fa; box-sizing: border-box; color: #d73a49;">export</span><span style="background-color: #f6f8fa;"> </span><span class="pl-k rich-diff-level-one" style="background-color: #f6f8fa; box-sizing: border-box; color: #d73a49;">class</span><span style="background-color: #f6f8fa;"> </span><span class="pl-en rich-diff-level-one" style="background-color: #f6f8fa; box-sizing: border-box; color: #6f42c1;">AppRoutingModule</span><span style="background-color: #f6f8fa;"> { }</span></pre>
<br />
<br />
続いて、Dashboard モジュールの表示コンポーネントの指定をします。「アプリケーションルート/dashboard」が呼び出された時に ListComponent を表示するよう指定を行っています。<br />
<br />
dashboard-routing.module.ts<br />
<pre class="rich-diff-level-zero" style="border-radius: 3px; box-sizing: border-box; color: #24292e; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; line-height: 1.45; margin-bottom: 16px; margin-left: 15px; overflow-wrap: normal; overflow: auto; padding: 10px 20px;"><span style="background-color: #f6f8fa;"><span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">import</span> { <span class="pl-smi rich-diff-level-one" style="box-sizing: border-box;">ListComponent</span> } <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">from</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box;">'</span>./list/list.component<span class="pl-pds" style="box-sizing: border-box;">'</span></span>;
<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">import</span> { <span class="pl-smi rich-diff-level-one" style="box-sizing: border-box;">NgModule</span> } <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">from</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box;">'</span>@angular/core<span class="pl-pds" style="box-sizing: border-box;">'</span></span>;
<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">import</span> { <span class="pl-smi rich-diff-level-one" style="box-sizing: border-box;">Routes</span>, <span class="pl-smi rich-diff-level-one" style="box-sizing: border-box;">RouterModule</span> } <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">from</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box;">'</span>@angular/router<span class="pl-pds" style="box-sizing: border-box;">'</span></span>;
<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">const</span> routes<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">:</span> <span class="pl-en rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">Routes</span> <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">=</span> [
{
</span><span style="background-color: yellow;">path: <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box;">'</span><span class="pl-pds" style="box-sizing: border-box;">'</span></span>,</span><span style="background-color: #f6f8fa;">
</span><span style="background-color: yellow;">component: <span class="pl-smi rich-diff-level-one" style="box-sizing: border-box;">ListComponent</span></span><span style="background-color: #f6f8fa;">
}
];
@</span><span class="pl-en rich-diff-level-one" style="background-color: #f6f8fa; box-sizing: border-box; color: #6f42c1;">NgModule</span><span style="background-color: #f6f8fa;">({
imports: [</span><span class="pl-smi rich-diff-level-one" style="background-color: #f6f8fa; box-sizing: border-box;">RouterModule</span><span style="background-color: #f6f8fa;">.</span><span class="pl-en rich-diff-level-one" style="background-color: #f6f8fa; box-sizing: border-box; color: #6f42c1;">forChild</span><span style="background-color: #f6f8fa;">(</span><span class="pl-smi rich-diff-level-one" style="background-color: #f6f8fa; box-sizing: border-box;">routes</span><span style="background-color: #f6f8fa;">)],
exports: [</span><span class="pl-smi rich-diff-level-one" style="background-color: #f6f8fa; box-sizing: border-box;">RouterModule</span><span style="background-color: #f6f8fa;">]
})
</span><span class="pl-k rich-diff-level-one" style="background-color: #f6f8fa; box-sizing: border-box; color: #d73a49;">export</span><span style="background-color: #f6f8fa;"> </span><span class="pl-k rich-diff-level-one" style="background-color: #f6f8fa; box-sizing: border-box; color: #d73a49;">class</span><span style="background-color: #f6f8fa;"> </span><span class="pl-en rich-diff-level-one" style="background-color: #f6f8fa; box-sizing: border-box; color: #6f42c1;">DashboardRoutingModule</span><span style="background-color: #f6f8fa;"> { }</span></pre>
<br />
<h4>
routerLink の設定</h4>
appcomponent.html に、dashboard へのリンクを追加します。dashboard のリンクをクリックすると、<router-outlet> タグに、dashboard モジュールの list コンポーネントが表示されます。<br />
<br />
app.component.html<br />
<pre class="rich-diff-level-zero" style="background-color: #f6f8fa; border-radius: 3px; box-sizing: border-box; color: #24292e; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; line-height: 1.45; margin-bottom: 16px; margin-left: 15px; overflow-wrap: normal; overflow: auto; padding: 10px 20px;"><<span class="pl-ent rich-diff-level-one" style="box-sizing: border-box; color: #22863a;">p</span>>ルーティングテスト</<span class="pl-ent rich-diff-level-one" style="box-sizing: border-box; color: #22863a;">p</span>>
<<span class="pl-ent rich-diff-level-one" style="box-sizing: border-box; color: #22863a;">a</span> <span class="pl-e rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">routerLink</span>=<span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box;">"</span><span class="pl-pds" style="box-sizing: border-box;">"</span></span>>top</<span class="pl-ent rich-diff-level-one" style="box-sizing: border-box; color: #22863a;">a</span>>
<<span class="pl-ent rich-diff-level-one" style="box-sizing: border-box; color: #22863a;">br</span>>
<<span class="pl-ent rich-diff-level-one" style="box-sizing: border-box; color: #22863a;">a</span> <span class="pl-e rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">routerLink</span>=<span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box;">"</span>/dashboard<span class="pl-pds" style="box-sizing: border-box;">"</span></span>>dashboard</<span class="pl-ent rich-diff-level-one" style="box-sizing: border-box; color: #22863a;">a</span>>
<<span class="pl-ent rich-diff-level-one" style="box-sizing: border-box; color: #22863a;">router-outlet</span>></<span class="pl-ent rich-diff-level-one" style="box-sizing: border-box; color: #22863a;">router-outlet</span>></pre>
<br />
<h4>
アプリケーションの実行と、lazy loading の確認</h4>
dashboard にアクセスすると、dashboard モジュールが初めて読み込まれることを確認することができます。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghj9C7lnktyg19YqS4l70ijY-Is3ooIxq20vc76yZ2-rHEcx4yTl-t64lLMfBoAU_cHgjDX8d-VYUZoA_1qxOuR_-tco2ifdwvxfveHNAoGJfCHrHxB2hKnAKBvgs92eMZ1cI5XkeVLvgn/s1600/angular+routing.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="756" data-original-width="629" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghj9C7lnktyg19YqS4l70ijY-Is3ooIxq20vc76yZ2-rHEcx4yTl-t64lLMfBoAU_cHgjDX8d-VYUZoA_1qxOuR_-tco2ifdwvxfveHNAoGJfCHrHxB2hKnAKBvgs92eMZ1cI5XkeVLvgn/s1600/angular+routing.png" /></a></div>
<br />
<br />
以上、Angular の lazy loading (遅延読み込み)の紹介でした。<br />
<br />
Angular に関連するトピックは次のページにまとめてあります。<br />
<br />
Angular 機能紹介一覧<br />
<a href="https://kainobi2.blogspot.com/2019/02/angular.html" target="_blank">https://kainobi2.blogspot.com/2019/02/angular.html</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4199838678392698089.post-71689615339681748462019-03-03T20:42:00.002+09:002019-03-03T20:42:51.992+09:00Angular 開発環境の構築Angular での開発を始めるにあたり、次の3つをインストールする必要があります。<br />
<br />
1.Node.js<br />
2.npm<br />
3.IDE<br />
<br />
<br />
<h4>
1.Node.js</h4>
Node.js は次のサイトからダウンロードします。<br />
<br />
<a href="https://nodejs.org/ja/" target="_blank">https://nodejs.org/ja/</a><br />
<br />
<img alt="" height="217" src="data:image/png;base64,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" width="400" /><br />
<br />
「推奨版」をインストールします。<br />
<br />
<br />
<h4>
2.npm</h4>
npm は Node.js に含まれてくるので、npm 自体のインストール作業はありません。<br />
<br />
<br />
<h4>
3.IDE</h4>
IDE に関しては、好みによって変わってくると思いますが、Visual Studio Code がおすすめです。Angular 開発に利用できる拡張機能が充実していることや、ユーザーの絶対数が多いので情報も見つかりやすいためです。<br />
<br />
Visual Studio Code は次のサイトからダウンロードします。<br />
<a href="https://code.visualstudio.com/" target="_blank">https://code.visualstudio.com/</a><br />
<br />
<br />
<br />
Angular に関連するトピックは次のページにまとめてあります。<br />
<br />
Angular 機能紹介一覧<br />
<a href="https://kainobi2.blogspot.com/2019/02/angular.html" target="_blank">https://kainobi2.blogspot.com/2019/02/angular.html</a> Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4199838678392698089.post-2920005098110261862019-02-24T16:15:00.000+09:002019-02-24T16:26:25.639+09:00Angular - Visual Studio Code でのデバッグ実行Angular アプリケーションを Visual Studio Code 上でデバッグ実行する方法です。<br />
<br />
<br />
<h4>
Debugger for Chrome のインストール</h4>
<br />
Debugger for Chrome というエクステンションというがありますので、インストールします。<br />
<br />
<br />
<img alt="" src="data:image/png;base64,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" /><br />
<br />
<br />
<h4>
Visual Studio のデバッグ設定</h4>
<br />
Visual Studio のデバッグ設定を行います。虫マークのデバッグメニューをクリックし、「デバッグの開始」ボタンの右隣にあるドロップダウンを開きます。そこから、「構成の追加...」を選択します。<br />
<br />
<img alt="" src="data:image/png;base64,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PGyKkZaWFgkEAvLzn/88achkGjE+n0+WL18uf/3rX41tDA4OEjEAAOS7bATMvffeK3/729+MiHjttdeM15xCJhsR4/P5pLu7O6PRGCIGAADNZCNiLly4YAqRFStWmF4PBALyy1/+0jJkGhoaLCOmpaVF3n33XSOOXn311aT7UFZWJp9//rmxnf7+fiIGAIB8lo2I+fWvf23Eww9+8APLZebPn28bMoODg8bXFi1aJPv375f4P5988om89dZbJvGTfV955RVj+V//+tdEDAAA+SzTgLn//vtNsbFz507bZe1CZv78+dLX1yciIr/5zW/kxz/+cULEWP2JP8W0Zs0a0+vxI0JEDAAAeSTTiPnOd75jRMMXX3zh+DgBq5D55S9/KfPnz5fTp08njZbPPvvMcX9in7X0zDPPEDEAAOSrTCPm2rVrRjTcvHnT1TrJQubpp5+2jZh///d/d9z2v/3bvxnLf+973yNiAADIV5lGzDvvvGNEQzAYdL1espCxu2lea2trSlH11ltvETEAAOSrTCPmgw8+MKLh+PHj4vP5pKOjQ27cuJEwETcqHA7LunXrXIfM22+/Lfv27XO1P729vcZ6v/rVr4gYAADyVaYRE3tZc0tLi/h8ic9Esvrz17/+VTZu3Jg0ZFpbW+WLL76Q//iP/5CqqipX+3P48GFjOx9//DERAwBAvso0Yv785z8b0XDw4EEjYqxuTjdjxgz5wx/+YCx/+/Zt+ed//uekIfP444/LF198YRtD7733nsyZM8d4j9jLs//85z8TMQAA5KtMI+ZXv/qVEQ1nzpwRn8/+gY1PPvlkQoR89tln8sgjjyQNmaamJtMdgeP/bNmyxXiPzs5O4+ucTgIAII9lGjFvv/22EQ0vvfRS0mV/97vfWUbI559/Ljt27EgaMjt27DCduor989hjjxnvETsnJhwOEzEAAOSrTCPme9/7nhENP/zhD22XW7Zsme1IiojI3/72N2lqakoaMitXrpSNGzcaurq6EiLmxo0bxnqvvPIKEQMAQL7KNGJiT9988MEHtss1NTUljRiRyM3yHn/8cZk/f768//77liETu83owyOjEVNcXCy3b9821nn66aeJGAAA8lWmEbNixQpThCxevNhyudraWseIiW6jublZysvLXYVMrE2bNpmWr6ysJGIAAMhXmUaMz2d+AOTw8LDlMvPnzzeNkiT7E72yqbzcOmQCgYDle1y+fNlYzs3dfYkYAAA0lo2IuXDhghEPn3zyiW1kPPHEE0nj5b/+679MEWMXMj//+c8T3mPp0qWmK5h6e3uJGAAA8lk2IqaiokI+++wzIyCid+610tzcLH/6059MUfLZZ59JT0+PlJaWJkSM25B56623jNdu374tZWVlRAwAAPksGxHj8/mkr6/PiIi//OUvsmrVKttly8rK5LHHHpOnn35atm3bJnPnzjVes4oYp5CJH+E5f/58yvtPxAAAoJlsRcycOXPk448/NkLiww8/lPLy8pS3YxcxdiHz3nvvmebafPzxx3L33XcTMQAA5LtsRYzP55PGxkZTYPzsZz+TWbNmZS1i7EIm9s/27dvT2nciBgAAzWQzYnw+n/T395ui4v3335c1a9ZkLWKShUyqk3mJGAAANJbtiCkuLjZNshWJ3I33woULUlpaarve6dOnjfWcImbDhg3y4Ycfmt7jBz/4gRQXFxMxAAAUimxHjM/nk0AgIDdv3kwYKXn//ffloYceslzn1VdfNZa7ePGi5TIzZsyQ8+fPJzzV+sc//rFpcjARAwBAAchFxPh8PikpKZEXXnjBct7Kv/zLv8jTTz8t9913n6ttzZ49W44fPy7//d//nbCtl19+WUpKSjLeXyIGAADN5Cpiop588knTTeji//zrv/6rDA4OyuOPPy4rV66U0tJSqaiokJqaGjl8+LC8/vrr8sknnySs9/nnn0tbW1vW9pOIAQBAM7mOGJ8v8gTrl156ST7//HPbmHH757PPPpMXXnhBli5dmtV9JGIAANDMVERMVEVFhfT19cnvf//7lOPld7/7nZw/f14qKipysm9EDAAAmpnKiIkqKiqStWvXyoULF+TmzZvyi1/8Qj788EO5ffu23L59Wz788EP5xS9+ITdv3pT+/v6ULtEmYgAAKBAqIsaLiBgAADSjOh68gogBAEAzquPBK4gYAAA0ozoevIKIAQBAM6rjwSuIGAAANKM6HryCiAEAQDOq48EriBgAADSjOh68gogBAEAzquPBK4gYAAA0ozoevIKIAQBAM6rjwSuIGAAANKM6HryCiAEAQDOq48EriBgAADSjOh68gogBAEAzquPBK4gYAAA0ozoevIKIAQBAM6rjwSuIGAAANKM6HryCiAEAQDOq48EriBgAADSjOh68gogBAEAz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" /><br />
<br />
<br />
すると、コマンドパレットにデバッグの実行環境が一覧表示されます。ここから「Chrome」を選択します。<br />
<br />
<img alt="" src="data:image/png;base64,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" /><br />
<br />
<br />
プロジェクトルート配下に .vscode\launch.json というファイルが生成され、開かれます。configurations > url で設定されているポートが 8080 になっているので、4200 に変更して保存します。<br />
<br />
<pre class="rich-diff-level-zero" style="-webkit-text-stroke-width: 0px; background-color: #f6f8fa; border-radius: 3px; box-sizing: border-box; color: #24292e; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; line-height: 1.45; margin-bottom: 16px; margin-left: 15px; margin-top: 0px; orphans: 2; overflow-wrap: normal; overflow: auto; padding: 10px 20px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px;">{
<span class="pl-c rich-diff-level-one" style="box-sizing: border-box; color: #6a737d;"><span class="pl-c" style="box-sizing: border-box; color: #6a737d;">//</span> IntelliSense を使用して利用可能な属性を学べます。</span>
<span class="pl-c rich-diff-level-one" style="box-sizing: border-box; color: #6a737d;"><span class="pl-c" style="box-sizing: border-box; color: #6a737d;">//</span> 既存の属性の説明をホバーして表示します。</span>
<span class="pl-c rich-diff-level-one" style="box-sizing: border-box; color: #6a737d;"><span class="pl-c" style="box-sizing: border-box; color: #6a737d;">//</span> 詳細情報は次を確認してください: https://go.microsoft.com/fwlink/?linkid=830387</span>
<span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">"</span>version<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">"</span></span><span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">:</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">"</span>0.2.0<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">"</span></span>,
<span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">"</span>configurations<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">"</span></span><span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">:</span> [
{
<span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">"</span>type<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">"</span></span><span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">:</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">"</span>chrome<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">"</span></span>,
<span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">"</span>request<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">"</span></span><span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">:</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">"</span>launch<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">"</span></span>,
<span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">"</span>name<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">"</span></span><span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">:</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">"</span>Launch Chrome against localhost<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">"</span></span>,
<span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">"</span>url<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">"</span></span><span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">:</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">"</span>http://localhost:<span style="background-color: yellow;">4200</span><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">"</span></span>,
<span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">"</span>webRoot<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">"</span></span><span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">:</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">"</span>${workspaceFolder}<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">"</span></span>
}
]
}</pre>
<br />
<br />
<h4>
デバッグの開始 </h4>
<br />
Angular アプリケーションを 4200 ポートで実行し、「デバッグの開始」ボタンをクリックします。(緑の再生ボタン)<br />
<br />
<br />
<img alt="" src="data:image/png;base64,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" /><br />
<br />
<br />
<br />
デバッグ実行が始まると、Chrome ブラウザが立ち上がってきます。 Visual Studio Code 上でブレークポイントをはっておくと、処理が止まります。<br />
<br />
<br />
<img alt="" src="data:image/png;base64,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" /><br />
<br />
<br />
ウォッチ式も使うことができます。<br />
<br />
<img alt="" src="data:image/png;base64,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" /><br />
<br />
<br />
Angular に関連するトピックは次のページにまとめてあります。<br />
<br />
Angular 機能紹介一覧<br />
<a href="https://kainobi2.blogspot.com/2019/02/angular.html" target="_blank">https://kainobi2.blogspot.com/2019/02/angular.html</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4199838678392698089.post-18037194334420379992019-02-23T13:40:00.003+09:002019-02-24T16:27:39.051+09:00Angular Reactive Forms(リアクティブフォーム)の使い方Angular で提供されている Reactive Forms(リアクティブフォーム)の使い方を見てみましょう。<br />
<br />
<h4>
AppModule.ts</h4>
Reactive Forms を利用するため、@angular/forms から ReactiveFormsModule をインポートします。 <br />
<pre class="rich-diff-level-zero" style="-webkit-text-stroke-width: 0px; background-color: #f6f8fa; border-radius: 3px; box-sizing: border-box; color: #24292e; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; line-height: 1.45; margin-bottom: 16px; margin-left: 15px; margin-top: 0px; orphans: 2; overflow-wrap: normal; overflow: auto; padding: 10px 20px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px;"><span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">import</span> { <span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">BrowserModule</span> } <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">from</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>@angular/platform-browser<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>;
<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">import</span> { <span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">NgModule</span> } <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">from</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>@angular/core<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>;
<span style="background-color: yellow;"><span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">import</span> { <span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">ReactiveFormsModule</span> } <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">from</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>@angular/forms<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>;</span>
<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">import</span> { <span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">AppComponent</span> } <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">from</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>./app.component<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>;
@<span class="pl-en rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">NgModule</span>({
declarations: [
<span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">AppComponent</span>
],
imports: [
<span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">BrowserModule</span>,
<span style="background-color: yellow;"><span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">ReactiveFormsModule</span></span>
],
providers: [],
bootstrap: [<span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">AppComponent</span>]
})
<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">export</span> <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">class</span> <span class="pl-en rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">AppModule</span> { }</pre>
<br />
<br />
<h4>
AppComponent.ts</h4>
コンポーネント上では、@angular/forms から FormBuilder をインポートします。<br />
各入力フォームコントロールは FormControl で生成します。そして、これら入力フォームコントロールをまとめ上げるのが、group メソッドの役割です。<br />
<br />
<pre class="rich-diff-level-zero" style="-webkit-text-stroke-width: 0px; background-color: #f6f8fa; border-radius: 3px; box-sizing: border-box; color: #24292e; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; line-height: 1.45; margin-bottom: 16px; margin-left: 15px; margin-top: 0px; orphans: 2; overflow-wrap: normal; overflow: auto; padding: 10px 20px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px;"><span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">import</span> { <span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">Component</span> } <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">from</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>@angular/core<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>;
<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">import</span> { <span style="background-color: yellow;"><span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">FormBuilder</span></span>, <span style="background-color: yellow;"><span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">FormControl</span></span> } <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">from</span> <span style="background-color: yellow;"><span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>@angular/forms<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span></span>;
@<span class="pl-en rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">Component</span>({
selector: <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>app-root<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>,
templateUrl: <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>./app.component.html<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>,
styleUrls: [<span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>./app.component.css<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>]
})
<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">export</span> <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">class</span> <span class="pl-en rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">AppComponent</span> {
title <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">=</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>build-test<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>;
id <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">=</span> <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">new</span> <span style="background-color: yellow;"><span class="pl-en rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">FormControl</span></span>(<span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>);
password <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">=</span> <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">new</span> <span style="background-color: yellow;"><span class="pl-en rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">FormControl</span></span>(<span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>);
loginForm <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">=</span> <span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">this</span>.<span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">fb</span>.<span style="background-color: yellow;"><span class="pl-en rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">group</span></span>({
id: <span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">this</span>.<span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">id</span>,
password: <span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">this</span>.<span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">password</span>
});
<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">constructor</span>(<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">private</span> <span class="pl-v rich-diff-level-one" style="box-sizing: border-box; color: #e36209;">fb</span><span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">:</span> <span style="background-color: yellow;"><span class="pl-en rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">FormBuilder</span></span>) {
}
login() {
<span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">console</span>.<span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">log</span>(<span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>id: <span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>, <span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">this</span>.<span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">loginForm</span>.<span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">get</span>(<span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>id<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>).<span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">value</span>);
<span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">console</span>.<span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">log</span>(<span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>password: <span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>, <span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">this</span>.<span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">loginForm</span>.<span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">get</span>(<span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>password<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>).<span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">value</span>);
}
}</pre>
<br />
<br />
<h4>
AppComponent (HTML テンプレート) </h4>
<br />
HTML テンプレート上では、form タグの formGroup 属性に、コンポーネントで生成した FormGroup(loginForm) を指定します。form タグ配下の入力コントロールには、formControl 属性から FormControl を紐づけます。<br />
<pre class="rich-diff-level-zero" style="-webkit-text-stroke-width: 0px; background-color: #f6f8fa; border-radius: 3px; box-sizing: border-box; color: #24292e; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; line-height: 1.45; margin-bottom: 16px; margin-left: 15px; margin-top: 0px; orphans: 2; overflow-wrap: normal; overflow: auto; padding: 10px 20px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px;"><<span class="pl-ent rich-diff-level-one" style="box-sizing: border-box; color: #22863a;">form</span> <span class="pl-e rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">[formGroup]</span>=<span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">"</span>loginForm<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">"</span></span> <span class="pl-e rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">(ngSubmit)</span>=<span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">"</span>login()<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">"</span></span>>
<<span class="pl-ent rich-diff-level-one" style="box-sizing: border-box; color: #22863a;">input</span> <span class="pl-e rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">type</span>=<span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">"</span>text<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">"</span></span> <span class="pl-e rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">[formControl]</span>=<span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">"</span>id<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">"</span></span>>
<<span class="pl-ent rich-diff-level-one" style="box-sizing: border-box; color: #22863a;">input</span> <span class="pl-e rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">type</span>=<span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">"</span>password<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">"</span></span> <span class="pl-e rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">[formControl]</span>=<span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">"</span>password<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">"</span></span>>
<<span class="pl-ent rich-diff-level-one" style="box-sizing: border-box; color: #22863a;">input</span> <span class="pl-e rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">type</span>=<span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">"</span>submit<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">"</span></span> <span class="pl-e rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">value</span>=<span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">"</span>ログイン<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">"</span></span>>
</<span class="pl-ent rich-diff-level-one" style="box-sizing: border-box; color: #22863a;">form</span>></pre>
<br />
ngSubmit に登録されている login() メソッドでは、FormGroup から FormControl を取り出して値を出力しています。<br />
<br />
<br />
Angular に関連するトピックは次のページにまとめてあります。<br />
<br />
Angular 機能紹介一覧<br />
<a href="https://kainobi2.blogspot.com/2019/02/angular.html" target="_blank">https://kainobi2.blogspot.com/2019/02/angular.html</a><br />
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4199838678392698089.post-2626459732258781702019-02-22T21:57:00.000+09:002019-02-24T21:58:03.771+09:00Angular HttpClient を利用した HTTP 通信Angular で HTTP 通信を行う際には、HttpClient を利用します。<br />
<br />
<br />
<h4>
app.module.ts</h4>
<br />
@angular/common/http にある HttpClientModule をインポートします。<br />
<br />
<pre class="rich-diff-level-zero" style="-webkit-text-stroke-width: 0px; background-color: #f6f8fa; border-radius: 3px; box-sizing: border-box; color: #24292e; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; line-height: 1.45; margin-bottom: 16px; margin-left: 15px; margin-top: 0px; orphans: 2; overflow-wrap: normal; overflow: auto; padding: 10px 20px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px;"><span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">import</span> { <span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">BrowserModule</span> } <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">from</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>@angular/platform-browser<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>;
<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">import</span> { <span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">NgModule</span> } <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">from</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>@angular/core<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>;
<span style="background-color: yellow;"><span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">import</span> { <span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">HttpClientModule</span> } <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">from</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>@angular/common/http<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>;</span>
<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">import</span> { <span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">AppComponent</span> } <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">from</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>./app.component<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>;
@<span class="pl-en rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">NgModule</span>({
declarations: [
<span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">AppComponent</span>
],
imports: [
<span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">BrowserModule</span>,
<span style="background-color: yellow;"><span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">HttpClientModule</span></span>
],
providers: [],
bootstrap: [<span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">AppComponent</span>]
})
<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">export</span> <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">class</span> <span class="pl-en rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">AppModule</span> { }</pre>
<br />
<h4>
app.component.ts</h4>
<br />
HttpClient を DI で参照します。HttpClient は
HTTP 通信の動詞(get, post, put, delete など)
に対応するメソッドが用意されています。用途に合うメソッドを呼び出します。ここでは、get メソッドでリソースの取得を行っています。データは
subscribe することで取得することができます。<br />
<br />
<pre class="rich-diff-level-zero" style="-webkit-text-stroke-width: 0px; background-color: #f6f8fa; border-radius: 3px; box-sizing: border-box; color: #24292e; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; line-height: 1.45; margin-bottom: 16px; margin-left: 15px; margin-top: 0px; orphans: 2; overflow-wrap: normal; overflow: auto; padding: 10px 20px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px;"><span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">import</span> { <span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">Component</span> } <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">from</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>@angular/core<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>;
<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">import</span> { <span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">HttpClient</span> } <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">from</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>@angular/common/http<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>;
@<span class="pl-en rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">Component</span>({
selector: <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>app-root<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>,
templateUrl: <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>./app.component.html<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>,
styleUrls: [<span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>./app.component.css<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>]
})
<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">export</span> <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">class</span> <span class="pl-en rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">AppComponent</span> {
title <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">=</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>build-test<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>;
<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">constructor</span>(<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">private</span> <span class="pl-v rich-diff-level-one" style="box-sizing: border-box; color: #e36209;">http</span><span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">:</span> <span class="pl-en rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">HttpClient</span>) {
}
getData() {
<span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">this</span>.<span style="background-color: yellow;"><span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">http</span></span>.<span style="background-color: yellow;"><span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">get</span></span>(<span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>https://localhost:5001/api/items<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>).<span style="background-color: yellow;"><span class="pl-en rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">subscribe</span></span>(<span class="pl-v rich-diff-level-one" style="box-sizing: border-box; color: #e36209;">response</span> <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">=></span> {
<span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">console</span>.<span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">log</span>(<span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">response</span>);
});
}
}</pre>
<br />
<h4>
app.component.html</h4>
<br />
参考までに、AppComponent に対応する HTML テンプレートの実装を記述しておきます。<br />
<br />
<pre class="rich-diff-level-zero" style="-webkit-text-stroke-width: 0px; background-color: #f6f8fa; border-radius: 3px; box-sizing: border-box; color: #24292e; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; line-height: 1.45; margin-bottom: 16px; margin-left: 15px; margin-top: 0px; orphans: 2; overflow-wrap: normal; overflow: auto; padding: 10px 20px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px;"><<span class="pl-ent rich-diff-level-one" style="box-sizing: border-box; color: #22863a;">button</span> <span class="pl-e rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">(click)</span>=<span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">"</span>getData()<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">"</span></span>>http 通信</<span class="pl-ent rich-diff-level-one" style="box-sizing: border-box; color: #22863a;">button</span>></pre>
<br />
<br />
※ HTTP 通信をする際に、サーバー側でクロスオリジン制約により通信が弾かれてしまう場合、制限を解除して通信を行ってください。<br />
<br />
参考:ASP.NET Core Web API クロスオリジンを許可する方法<br />
<a href="https://kainobi2.blogspot.com/2019/01/aspnet-core-web-api.html" target="_blank">https://kainobi2.blogspot.com/2019/01/aspnet-core-web-api.html</a><br />
<br />
<br />
Angular に関連するトピックは次のページにまとめてあります。<br />
<br />
Angular 機能紹介一覧<br />
<a href="https://kainobi2.blogspot.com/2019/02/angular.html" target="_blank">https://kainobi2.blogspot.com/2019/02/angular.html</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4199838678392698089.post-80100096250762428602019-02-21T22:44:00.000+09:002019-02-24T16:43:51.863+09:00Angular ngFor ディレクティブによる繰り返し処理Angular の ngFor ディレクティブを利用することで、HTML テンプレート上で繰り返し処理を行うことができます。<br />
<br />
<h4>
app.component.ts </h4>
<br />
簡単な例として、items という文字列配列があるとします。<br />
<br />
<pre class="rich-diff-level-zero" style="-webkit-text-stroke-width: 0px; background-color: #f6f8fa; border-radius: 3px; box-sizing: border-box; color: #24292e; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; line-height: 1.45; margin-bottom: 16px; margin-left: 15px; margin-top: 0px; orphans: 2; overflow-wrap: normal; overflow: auto; padding: 10px 20px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px;"><span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">import</span> { <span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">Component</span>, <span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">OnInit</span> } <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">from</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>@angular/core<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>;
@<span class="pl-en rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">Component</span>({
selector: <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>app-root<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>,
templateUrl: <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>./app.component.html<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>,
styleUrls: [<span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>./app.component.css<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>]
})
<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">export</span> <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">class</span> <span class="pl-en rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">AppComponent</span> <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">implements</span> <span class="pl-e rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">OnInit</span> {
title <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">=</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>build-test<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>;
items <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">=</span> [];
ngOnInit() {
<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">for</span> (<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">let</span> i <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">=</span> <span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">0</span>; <span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">i</span> <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;"><</span> <span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">10</span>; <span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">i</span><span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">++</span>) {
<span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">this</span>.<span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">items</span>.<span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">push</span>(<span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">`</span>item ${<span class="pl-smi" style="box-sizing: border-box; color: #24292e;">i</span>}<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">`</span></span>);
}
}
}</pre>
<br />
<h4>
app.component.html</h4>
<br />
HTML テンプレート上で、ngFor で items 配列のすべての要素を出力します。ngFor ディレクティブを div などの HTML 要素上で使う際には、*(アスタリスク)を付けます。<br />
<br />
<pre class="rich-diff-level-zero" style="-webkit-text-stroke-width: 0px; background-color: #f6f8fa; border-radius: 3px; box-sizing: border-box; color: #24292e; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; line-height: 1.45; margin-bottom: 16px; margin-left: 15px; margin-top: 0px; orphans: 2; overflow-wrap: normal; overflow: auto; padding: 10px 20px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px;"><<span class="pl-ent rich-diff-level-one" style="box-sizing: border-box; color: #22863a;">div</span> <span class="pl-e rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">*ngFor</span>=<span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">"</span>let item of items<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">"</span></span>>
{{ item }}
</<span class="pl-ent rich-diff-level-one" style="box-sizing: border-box; color: #22863a;">div</span>></pre>
<br />
<br />
<br />
出力結果は次のとおりです。<br />
<br />
<img alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEYAAAC+CAYAAACI73nwAAAFMUlEQVR4nO2d27HjIBBEyUgRERDZEAz5zH7ohYDe9dqGmSn3qdrauo+SuMdIQANSEDIkaBfAKhQDoBgAxQAoBkAxgNfElCRb2CSVyaX5K1liCBJCkLAlmV0UJzWmSNqCbMcnU9I2Xc7bYkqK62pQjo2IXVTM8075npjFl1aOQUJjYfS9b/KamBwlhChZjmp8XuuP6726B4T609w/3RDzcZzq5yXJdny9QcvPy+j67uTL6d9irj9mF3N/r64xWWL986tGHVJOYYetHBuplfgeq2JE+oI3Yrpa9KgFVY2R6vfrP6oTXTMWk+Pc1ul7YuD1/qkYJ/eY++tGDPz0PhfTt0r7/Uy/VWoLXrVKOSUp5423LmlJkrLIV8Q0zbONfkzVktyFv1ug6++tWpj7xtrffJ/3oyh5ePxhQdjztQDFACgGQDEAigFQDIBiAI4SPLn6VDN7vCduakzdMTQtZmmCdzF/jHTiIsG7sSZGNcF7FMSQGPUE71EYQ2JElBO8R0EcipmY4FUFcShmZoJ3F8SiGM0Erz6vFTFGErzuPjbZjpue72ooBkAxAIoBUAyAYgAUA3CT4D36MZyJPMixiiWOzqX63DVgXYJXJKWml/vy2Op9nCV4687vLMGryqN+KZlK8M7Tzx9hO0vwZJe+IHfwl+AtaKpFXCV4RdL2+uX2KU4SvCJpa3+eJaqu2lRP8J6tXf1Pf9XmD0IxAIoBUAyAYgAUA6AYABM8gIsaU9LWJXj/FVO8gYMET6SUwbY/k3PXypdWjvPP7S7BWxFSibhK8J7ibdxjLCV4l6C52YyzBA+UZwKOErz6kEk29VkCEQMJXlscC7ME6glecwwzixN/FIoBUAyAYgAUA6AYAMUA3CR4N/OfaCbisMacHUSzYlR20ZYkMaUle5YcJXhFUrzHZTbEGEjw7hpqRYyFBK8kic0sgb4YEfUEb482rq+ciZmV4LVxxvAy/j4OEzxzNcZKgmdFjHqC1xXIiJgfhWIAFAOgGADFACgGQDEAVwneNfh8uc/zPn5qzGOEPR83CV6O6/YqiXhJ8OrhhtUdbrpr8M6xl4XFiRYSvAYbT5kXUU/wBgWSaKJVsrYGb7hH8rs4TPBEVmwzdpjgcQ1eVQSuwTMDxQAoBkAxAIoBUAyAYgCuEryduw81czOXqxpzdg5n724TcZTg7VLW1VpXCd6KmnLiIsHbzxklVefW3yyqnuAdx9i2e5bgKJP+zdfcu2hPWR6Wmk1L8Ly/vXhigjc6vqGX9GomeM0TQEw8ndVAgtcf38K80o9CMQCKAVAMgGIAFAOgGICPBA9tzVHv+SpTUupG3rPnr10keO1z8LqYYwI+EryWHI08INDMGryzOKaWgVhZgzf/MhJxkeANysI3WQyOljZDC4fMrMFb9zYLJwledd4V1UU8JXiy7jIScdLz1YBiABQDoBgAxQAoBkAxAB8J3lUGzkQ+OaQ8O5Pac9eApWvwulhi/tMTfSR4x7DhFmEl2jSQ4O3h1v5hrBgzOUrw7mPZWedrIcE7Xga+ahG0jwSvJNm6Gmnh5mtwDd7zZVTfx0eC17VKFpprKwne4/cszCv9KBQDoBgAxQAoBkAxAIoBOE3wrCwD0ab5YM6tgPp5zICVCV6O4x1u+mOllqWX1lhCjsa2/q1P8PpB6F4kbTEGErz+DTljWd/ETYLXPqfKz/ZivotWlid4TWEMvZdAO8F7/J6VWQIDCd59f1n3TF8fPV8FKAZAMQCKAVAMgGIAFAOgGADFAIKEIGH/j1T8Aaa0m2YXVqevAAAAAElFTkSuQmCC" /><br />
<br />
<br />
Angular に関連するトピックは次のページにまとめてあります。<br />
<br />
<br />
Angular 機能紹介一覧<br />
<br />
<a href="https://kainobi2.blogspot.com/2019/02/angular.html" target="_blank">https://kainobi2.blogspot.com/2019/02/angular.html</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4199838678392698089.post-22861051416923764552019-02-20T22:12:00.000+09:002019-02-24T16:28:46.949+09:00Angular CLI コマンドいろいろ<h4>
コンポーネントを生成するコマンド</h4>
<br />
<i>ng generate component コンポーネント名</i><br />
<br />
いろいろと省略すると、次のように書くことができます。<br />
<pre class="rich-diff-level-zero" style="-webkit-text-stroke-width: 0px; background-color: #f6f8fa; border-radius: 3px; box-sizing: border-box; color: #24292e; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; line-height: 1.45; margin-bottom: 16px; margin-left: 15px; margin-top: 0px; orphans: 2; overflow-wrap: normal; overflow: auto; padding: 10px 20px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px;">ng g c child</pre>
<br />
<h4>
サービスを生成するコマンド</h4>
<br />
<i>ng generate service サービス名</i><br />
<pre class="rich-diff-level-zero" style="-webkit-text-stroke-width: 0px; background-color: #f6f8fa; border-radius: 3px; box-sizing: border-box; color: #24292e; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; line-height: 1.45; margin-bottom: 16px; margin-left: 15px; margin-top: 0px; orphans: 2; overflow-wrap: normal; overflow: auto; padding: 10px 20px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px;">ng g s calc</pre>
<br />
<br />
<br />
Angular に関連するトピックは次のページにまとめてあります。<br />
<br />
Angular 機能紹介一覧<br />
<a href="https://kainobi2.blogspot.com/2019/02/angular.html" target="_blank">https://kainobi2.blogspot.com/2019/02/angular.html</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4199838678392698089.post-51635989956115362852019-02-19T22:05:00.002+09:002019-02-24T16:29:03.178+09:00Angular CLI ルーティング用ファイル付きのモジュールの作成Angualr CLI でモジュールを作成する際に利用するコマンドは ng generate module です。<br />
更に --routing というパラメーターを加えることで、ルーティング用ファイルを自動生成してくれます。例えば、product モジュールを作成する際に ルーティング用ファイルを自動生成する場合、次のようになります。<br />
<br />
<pre class="rich-diff-level-zero" style="-webkit-text-stroke-width: 0px; background-color: #f6f8fa; border-radius: 3px; box-sizing: border-box; color: #24292e; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; line-height: 1.45; margin-bottom: 16px; margin-left: 15px; margin-top: 0px; orphans: 2; overflow-wrap: normal; overflow: auto; padding: 10px 20px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px;">ng generate module product --routing</pre>
<br />
generate や module は g と m で省略することもできます。<br />
<pre class="rich-diff-level-zero" style="-webkit-text-stroke-width: 0px; background-color: #f6f8fa; border-radius: 3px; box-sizing: border-box; color: #24292e; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; line-height: 1.45; margin-bottom: 16px; margin-left: 15px; margin-top: 0px; orphans: 2; overflow-wrap: normal; overflow: auto; padding: 10px 20px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px;">ng g m product --routing</pre>
<br />
<br />
Angular に関連するトピックは次のページにまとめてあります。<br />
<br />
Angular 機能紹介一覧<br />
<a href="https://kainobi2.blogspot.com/2019/02/angular.html" target="_blank">https://kainobi2.blogspot.com/2019/02/angular.html</a><br />
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4199838678392698089.post-18313400409137506372019-02-18T21:46:00.000+09:002019-03-27T09:05:41.651+09:00Angular CLI を利用したアプリケーション作成方法Angular では CLI(Command Line Interface) が用意されており、CLI コマンドを利用することですばやくアプリケーション作成やアプリケーションの実行などを行うことができます。<br />
<br />
Angular CLI を利用するにあたり、Angular CLI のインストールを行います。<br />
<pre class="rich-diff-level-zero" style="background-color: #f6f8fa; border-radius: 3px; box-sizing: border-box; color: #24292e; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; line-height: 1.45; margin-bottom: 16px; margin-left: 15px; overflow-wrap: normal; overflow: auto; padding: 10px 20px;">npm install -g <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">@</span>angular/cli</pre>
<br />
続いてアプリケーションのひな型を生成します。<br />
<pre class="rich-diff-level-zero" style="-webkit-text-stroke-width: 0px; background-color: #f6f8fa; border-radius: 3px; box-sizing: border-box; color: #24292e; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; line-height: 1.45; margin-bottom: 16px; margin-left: 15px; margin-top: 0px; orphans: 2; overflow-wrap: normal; overflow: auto; padding: 10px 20px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px;">ng new app1</pre>
<br />
app1 の部分にはアプリケーション名を入力します。すると、ルーティングなどの初期設定に関する選択肢が出てきます。デフォルトの選択値のまま処理を進めると、アプリケーションの雛形が作成されます。アプリケーション作成後、アプリケーションフォルダに移動し、次の CLI コマンドを入力することでアプリケーションを実行することができます。<br />
<pre class="rich-diff-level-zero" style="-webkit-text-stroke-width: 0px; background-color: #f6f8fa; border-radius: 3px; box-sizing: border-box; color: #24292e; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; line-height: 1.45; margin-bottom: 16px; margin-left: 15px; margin-top: 0px; orphans: 2; overflow-wrap: normal; overflow: auto; padding: 10px 20px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px;">ng serve -o</pre>
<br />
もしくは次のように serve を省略して書くこともできます。<br />
<pre class="rich-diff-level-zero" style="-webkit-text-stroke-width: 0px; background-color: #f6f8fa; border-radius: 3px; box-sizing: border-box; color: #24292e; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; line-height: 1.45; margin-bottom: 16px; margin-left: 15px; margin-top: 0px; orphans: 2; overflow-wrap: normal; overflow: auto; padding: 10px 20px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px;">ng s -o</pre>
<br />
Angular に関連するトピックは次のページにまとめてあります。<br />
<br />
Angular 機能紹介一覧<br />
<a href="https://kainobi2.blogspot.com/2019/02/angular.html" target="_blank">https://kainobi2.blogspot.com/2019/02/angular.html</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4199838678392698089.post-41514470926931026872019-02-17T22:40:00.000+09:002019-02-24T16:29:47.092+09:00Angular ngOnChanges イベントAngular のイベントライフサイクルフックのうち、ngOnChanges イベントについて見ていきます。<br />
<br />
ngOnChanges イベントは、コンポーネントの Input プロパティが設定(再設定)されたタイミングで発生します。また、ngOnInit の前に発生します。Angular のドキュメンテーションはこちらです。<br />
<br />
ライフサイクル・フック <br />
<a href="https://angular.jp/guide/lifecycle-hooks#lifecycle-sequence#%E3%83%A9%E3%82%A4%E3%83%95%E3%82%B5%E3%82%A4%E3%82%AF%E3%83%AB%E3%83%BB%E3%82%B7%E3%83%BC%E3%82%B1%E3%83%B3%E3%82%B9" target="_blank">https://angular.jp/guide/lifecycle-hooks#lifecycle-sequence#ライフサイクル・シーケンス</a><br />
<br />
以下は、AppComponent と ChildComponent がある場合に、ChildComponent の ngOnChanges イベントをハンドルする例です。<br />
<br />
<br />
<h4>
child.component.ts</h4>
<br />
ChildComponent には、displayTetxt というプロパティがあり、<a href="https://kainobi2.blogspot.com/2019/02/angular-input.html" target="_blank">@Input デコレーター</a>により外部より値が設定できる状態になっています。それに加え、ngOnChanges イベントを実装しています。<br />
<br />
<pre class="rich-diff-level-zero" style="-webkit-text-stroke-width: 0px; background-color: #f6f8fa; border-radius: 3px; box-sizing: border-box; color: #24292e; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; line-height: 1.45; margin-bottom: 16px; margin-left: 15px; margin-top: 0px; orphans: 2; overflow-wrap: normal; overflow: auto; padding: 10px 20px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px;"><span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">import</span> { <span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">Component</span>, <span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">OnInit</span>, <span style="background-color: yellow;"><span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">OnChanges</span></span>, <span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">SimpleChanges</span>, <span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">Input</span> } <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">from</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>@angular/core<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>;
@<span class="pl-en rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">Component</span>({
selector: <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>app-child<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>,
templateUrl: <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>./child.component.html<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>,
styleUrls: [<span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>./child.component.css<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>]
})
<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">export</span> <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">class</span> <span class="pl-en rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">ChildComponent</span> <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">implements</span> <span class="pl-e rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">OnInit</span>, <span style="background-color: yellow;"><span class="pl-e rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">OnChanges</span></span> {
<span style="background-color: yellow;">@<span class="pl-en rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">Input</span>()</span> displayText<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">:</span> <span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">string</span>;
<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">constructor</span>() { }
ngOnInit() {
<span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">console</span>.<span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">log</span>(<span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>child: ngOnInit<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>);
}
<span style="background-color: yellow;">ngOnChanges</span>(<span class="pl-v rich-diff-level-one" style="box-sizing: border-box; color: #e36209;">changes</span><span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">:</span> <span class="pl-en rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">SimpleChanges</span>) {
<span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">console</span>.<span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">log</span>(<span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>child: ngOnChanges<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>, <span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">changes</span>);
}
}</pre>
<br />
<h4>
child.component.html</h4>
<br />
ChildComponent の HTML テンプレート上では、displayText を出力しています。 <br />
<pre class="rich-diff-level-zero" style="-webkit-text-stroke-width: 0px; background-color: #f6f8fa; border-radius: 3px; box-sizing: border-box; color: #24292e; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; line-height: 1.45; margin-bottom: 16px; margin-left: 15px; margin-top: 0px; orphans: 2; overflow-wrap: normal; overflow: auto; padding: 10px 20px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px;"><<span class="pl-ent rich-diff-level-one" style="box-sizing: border-box; color: #22863a;">p</span>>
child works!
</<span class="pl-ent rich-diff-level-one" style="box-sizing: border-box; color: #22863a;">p</span>>
{{displayText}}</pre>
<br />
<br />
続いて AppComponent 側の設定です。<br />
<br />
<br />
<h4>
app.component.html</h4>
<br />
AppComponent 側では、ChildComponent の持つ displayText に現在時刻を文字列として持つ変数をバインドしています。<br />
<br />
<pre class="rich-diff-level-zero" style="-webkit-text-stroke-width: 0px; background-color: #f6f8fa; border-radius: 3px; box-sizing: border-box; color: #24292e; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; line-height: 1.45; margin-bottom: 16px; margin-left: 15px; margin-top: 0px; orphans: 2; overflow-wrap: normal; overflow: auto; padding: 10px 20px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px;"><<span class="pl-ent rich-diff-level-one" style="box-sizing: border-box; color: #22863a;">button</span> <span class="pl-e rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">(click)</span>=<span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">"</span>changeDisplayText()<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">"</span></span>>displayText を変更!</<span class="pl-ent rich-diff-level-one" style="box-sizing: border-box; color: #22863a;">button</span>>
<<span class="pl-ent rich-diff-level-one" style="box-sizing: border-box; color: #22863a;">app-child</span> <span class="pl-e rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">#child</span> <span class="pl-e rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">[displayText]</span>=<span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">"</span>text<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">"</span></span>></<span class="pl-ent rich-diff-level-one" style="box-sizing: border-box; color: #22863a;">app-child</span>></pre>
<br />
<br />
<h4>
app.component.ts</h4>
<br />
ボタンをクリックすることでバインドしている変数が変更されていきます。 <br />
<br />
<pre class="rich-diff-level-zero" style="-webkit-text-stroke-width: 0px; background-color: #f6f8fa; border-radius: 3px; box-sizing: border-box; color: #24292e; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; line-height: 1.45; margin-bottom: 16px; margin-left: 15px; margin-top: 0px; orphans: 2; overflow-wrap: normal; overflow: auto; padding: 10px 20px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px;"><span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">import</span> { <span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">Component</span> } <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">from</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>@angular/core<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>;
@<span class="pl-en rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">Component</span>({
selector: <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>app-root<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>,
templateUrl: <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>./app.component.html<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>,
styleUrls: [<span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>./app.component.css<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>]
})
<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">export</span> <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">class</span> <span class="pl-en rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">AppComponent</span> {
title <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">=</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>build-test<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>;
text<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">:</span> <span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">string</span>;
changeDisplayText() {
<span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">this</span>.<span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">text</span> <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">=</span> <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">new</span> <span class="pl-en rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">Date</span>().<span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">toString</span>();
}
}</pre>
<br />
<br />
<h4>
実行結果</h4>
<br />
ブラウザの開発者ツールのコンソールを見ると、ボタンクリックに応じて ngOnChanges が発生していることが確認できます。<br />
<br />
<img alt="" src="data:image/png;base64,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" /> <br />
<br />
Angular に関連するトピックは次のページにまとめてあります。<br />
<br />
Angular 機能紹介一覧<br />
<a href="https://kainobi2.blogspot.com/2019/02/angular.html" target="_blank">https://kainobi2.blogspot.com/2019/02/angular.html</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4199838678392698089.post-72582333348897707982019-02-16T16:30:00.000+09:002019-02-23T16:30:57.457+09:00JavaScript String.includes メソッドJavaScript の String.includes メソッドを利用することで、文字列に任意の文字列が含まれているかを判定することができます。ES2015 から提供されています。例えば、次のように使います。<br />
<br />
<pre class="rich-diff-level-zero" style="-webkit-text-stroke-width: 0px; background-color: #f6f8fa; border-radius: 3px; box-sizing: border-box; color: #24292e; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; line-height: 1.45; margin-bottom: 16px; margin-left: 15px; margin-top: 0px; orphans: 2; overflow-wrap: normal; overflow: auto; padding: 10px 20px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px;"><span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">var</span> str1 <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">=</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">"</span>abcde<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">"</span></span>;
<span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">str1</span>.<span class="pl-en rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">includes</span>(<span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>c<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>)
<span style="color: #38761d;"><span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box;">// true が返ります。</span></span></pre>
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4199838678392698089.post-58866635470359973032019-02-15T22:59:00.000+09:002019-02-23T18:20:07.117+09:00JavaScript Array - map メソッドと filter メソッドJavaScript Array の map メソッドと filter メソッドについて、簡単にメモをしておきます。<br />
<br />
<h4>
map メソッド</h4>
配列の各要素に任意の加工を行い、新たに配列を生成します。<br />
<br />
<pre class="rich-diff-level-zero" style="-webkit-text-stroke-width: 0px; background-color: #f6f8fa; border-radius: 3px; box-sizing: border-box; color: #24292e; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; line-height: 1.45; margin-bottom: 16px; margin-left: 15px; margin-top: 0px; orphans: 2; overflow-wrap: normal; overflow: auto; padding: 10px 20px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px;"><span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">let</span> items <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">=</span> [<span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">1</span>, <span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">2</span>, <span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">3</span>, <span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">4</span>, <span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">5</span>];
<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">let</span> result <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">=</span> <span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">items</span>.<span class="pl-en rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">map</span>((<span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">val</span>, <span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">idx</span>, <span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">data</span>) <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">=></span> {
<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">return</span> val <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">*</span> <span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">5</span>;
});
<span class="pl-en rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">console</span>.<span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">log</span>(<span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>result: <span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>, result);
<span class="pl-en rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">console</span>.<span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">log</span>(<span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>items: <span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>, items);</pre>
<br />
<br />
結果として、result には items の各要素を 5 倍した値が入っています。<br />
<br />
<img alt="" src="data:image/png;base64,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" /> <br />
<br />
<h4>
</h4>
<h4>
filter メソッド</h4>
配列の各要素から、条件に合致する要素のみを取り出し、新たに配列を生成します。<br />
<br />
<pre class="rich-diff-level-zero" style="-webkit-text-stroke-width: 0px; background-color: #f6f8fa; border-radius: 3px; box-sizing: border-box; color: #24292e; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; line-height: 1.45; margin-bottom: 16px; margin-left: 15px; margin-top: 0px; orphans: 2; overflow-wrap: normal; overflow: auto; padding: 10px 20px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px;"><span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">let</span> items <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">=</span> [<span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">1</span>, <span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">2</span>, <span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">3</span>, <span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">4</span>, <span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">5</span>];
<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">let</span> result <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">=</span> <span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">items</span>.<span class="pl-en rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">filter</span>((<span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">val</span>, <span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">idx</span>, <span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">data</span>) <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">=></span> {
<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">return</span> val <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">></span> <span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">3</span>;
});
<span class="pl-en rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">console</span>.<span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">log</span>(<span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>result: <span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>, result);
<span class="pl-en rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">console</span>.<span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">log</span>(<span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>items: <span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>, items);</pre>
<br />
結果として、result には items から条件に合致した 4 と 5 が入っています。<br />
<br />
<img alt="" src="data:image/png;base64,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" /> <br />
<br />
<br />
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4199838678392698089.post-10982628071150458002019-02-14T21:57:00.000+09:002019-02-24T16:29:56.965+09:00Angular async パイプで HTML テンプレートに独自クラスのオブジェクトを表示タイトルのままです。Angular で取り扱う独自クラスのオブジェクトのデータを、async パイプを使って HTML テンプレート上に表示する方法です。<br />
<br />
例えば、独自実装の Album クラスオブジェクトの Observable (ここの例では album$)を受け取るコンポーネントがあった場合、コンポーネントの HTML テンプレート上では、async の後に別の変数を用意して受けます。この変数には <b>album$ | async</b> の評価後の値が入るので、HTML テンプレート内で利用することができます。<br />
<br />
HTML テンプレート<br />
<pre class="rich-diff-level-zero" style="background-color: #f6f8fa; border-radius: 3px; box-sizing: border-box; color: #24292e; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; line-height: 1.45; margin-bottom: 16px; margin-left: 15px; overflow-wrap: normal; overflow: auto; padding: 10px 20px;"><<span class="pl-ent rich-diff-level-one" style="box-sizing: border-box; color: #22863a;">div</span> <span class="pl-e rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">*ngIf</span>=<span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box;">"</span>album$ | async as album<span class="pl-pds" style="box-sizing: border-box;">"</span></span>>
<<span class="pl-ent rich-diff-level-one" style="box-sizing: border-box; color: #22863a;">div</span>>{{album.title}}</<span class="pl-ent rich-diff-level-one" style="box-sizing: border-box; color: #22863a;">div</span>>
</<span class="pl-ent rich-diff-level-one" style="box-sizing: border-box; color: #22863a;">div</span>></pre>
<br />
コンポーネント<br />
<pre class="rich-diff-level-zero" style="background-color: #f6f8fa; border-radius: 3px; box-sizing: border-box; color: #24292e; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; line-height: 1.45; margin-bottom: 16px; margin-left: 15px; overflow-wrap: normal; overflow: auto; padding: 10px 20px;"><span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">export</span> <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">class</span> <span class="pl-en rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">AlbumDetailComponent</span> <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">implements</span> <span class="pl-e rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">OnInit</span> {
<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">...</span>
album$<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">:</span> <span class="pl-en rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">Observable</span><<span class="pl-en rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">Album</span>>;
ngOnInit() {
<span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">this</span>.<span class="pl-smi rich-diff-level-one" style="box-sizing: border-box;">album$</span> <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">=</span> <span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">this</span>.<span class="pl-smi rich-diff-level-one" style="box-sizing: border-box;">service</span>.<span class="pl-en rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">getAlbum</span>();
}
}</pre>
<br />
<br />
Angular に関連するトピックは次のページにまとめてあります。<br />
<br />
Angular 機能紹介一覧<br />
<a href="https://kainobi2.blogspot.com/2019/02/angular.html" target="_blank">https://kainobi2.blogspot.com/2019/02/angular.html</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4199838678392698089.post-33959635337893732472019-02-13T21:43:00.000+09:002019-08-29T23:12:42.738+09:00Angular イベントバインディング<script>
location.href = "https://watermargin.net/programming/angular/angular-event-binding/";
</script><br />
Angular のイベントバインディングを利用して、HTML テンプレート上にあるコントロールのイベントを、コンポーネント(TypeScript) 側でハンドルする方法です。<br />
<br />
ここでは2つのボタンを用意し、一つは引数なし、もう一つは引数ありのイベントハンドラーを呼び出すようにしています。<br />
<br />
ポイントは、HTML テンプレート上のイベントを丸かっこ () で囲むことでイベントバインディングを行うことができる部分です。<br />
<br />
HTML テンプレート<br />
<pre class="rich-diff-level-zero" style="-webkit-text-stroke-width: 0px; background-color: #f6f8fa; border-radius: 3px; box-sizing: border-box; color: #24292e; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; line-height: 1.45; margin-bottom: 16px; margin-left: 15px; margin-top: 0px; orphans: 2; overflow-wrap: normal; overflow: auto; padding: 10px 20px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px;"><<span class="pl-ent rich-diff-level-one" style="box-sizing: border-box; color: #22863a;">button</span> <span class="pl-e rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">(click)</span>=<span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">"</span>clicked()<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">"</span></span>>ボタン</<span class="pl-ent rich-diff-level-one" style="box-sizing: border-box; color: #22863a;">button</span>>
<<span class="pl-ent rich-diff-level-one" style="box-sizing: border-box; color: #22863a;">button</span> <span class="pl-e rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">(click)</span>=<span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">"</span>clickedWithNumber(1)<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">"</span></span>>ボタン</<span class="pl-ent rich-diff-level-one" style="box-sizing: border-box; color: #22863a;">button</span>></pre><br />
コンポーネント(TypeScript)<br />
<pre class="rich-diff-level-zero" style="-webkit-text-stroke-width: 0px; background-color: #f6f8fa; border-radius: 3px; box-sizing: border-box; color: #24292e; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; line-height: 1.45; margin-bottom: 16px; margin-left: 15px; margin-top: 0px; orphans: 2; overflow-wrap: normal; overflow: auto; padding: 10px 20px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px;"><span class="pl-en rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">clicked</span>() {
<span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">console</span>.<span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">log</span>(<span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>クリックされました。<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>);
}
<span class="pl-en rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">clickedWithNumber</span>(<span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">arg</span>) {
<span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">console</span>.<span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">log</span>(<span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>クリックされました。<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>, <span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">arg</span>);
}</pre><br />
Angular に関連するトピックは次のページにまとめてあります。<br />
<br />
<br />
Angular 機能紹介一覧<br />
<br />
<a href="https://kainobi2.blogspot.com/2019/02/angular.html" target="_blank">https://kainobi2.blogspot.com/2019/02/angular.html</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4199838678392698089.post-79314001735582900212019-02-10T16:37:00.002+09:002019-04-07T17:01:27.843+09:00Angular 機能紹介一覧Angular 関連の機能紹介一覧です。<br />
<br />
<h4>
Angular 事始め</h4>
Angular 開発環境の構築 <br />
<a href="https://kainobi2.blogspot.com/2019/03/angular.html" target="_blank">https://kainobi2.blogspot.com/2019/03/angular.html</a><br />
<br />
Angular CLI を利用したアプリケーション作成方法<br />
<a href="https://kainobi2.blogspot.com/2019/02/angular-cli.html" target="_blank">https://kainobi2.blogspot.com/2019/02/angular-cli.html</a><br />
<br />
<h4>
Angular CLI</h4>
Angular CLI ルーティング用ファイル付きのモジュールの作成<br />
<a href="https://kainobi2.blogspot.com/2019/02/angular-cli_19.html" target="_blank">https://kainobi2.blogspot.com/2019/02/angular-cli_19.html</a><br />
<br />
Angular CLI コマンドいろいろ<br />
<a href="https://kainobi2.blogspot.com/2019/02/angular-cli_20.html" target="_blank">https://kainobi2.blogspot.com/2019/02/angular-cli_20.html</a><br />
<br />
<h4>
ディレクティブ</h4>
Angular - ngIf ディレクティブ<br />
<a href="https://kainobi2.blogspot.com/2018/07/angular-ngif.html" target="_blank">https://kainobi2.blogspot.com/2018/07/angular-ngif.html</a><br />
<br />
Angular ngFor ディレクティブによる繰り返し処理<br />
<a href="https://kainobi2.blogspot.com/2019/02/angular-ngfor.html" target="_blank">https://kainobi2.blogspot.com/2019/02/angular-ngfor.html</a><br />
<br />
<h4>
バインディング</h4>
Angular イベントバインディング<br />
<a href="https://kainobi2.blogspot.com/2019/02/angular_13.html" target="_blank">https://kainobi2.blogspot.com/2019/02/angular_13.html</a><br />
<br />
<h4>
デコレーター</h4>
Angular @ViewChild デコレーター<br />
<a href="https://kainobi2.blogspot.com/2019/02/angular-viewchild.html" target="_blank">https://kainobi2.blogspot.com/2019/02/angular-viewchild.html</a><br />
<br />
Angular @Input デコレーター<br />
<a href="https://kainobi2.blogspot.com/2019/02/angular-input.html" target="_blank">https://kainobi2.blogspot.com/2019/02/angular-input.html</a><br />
<br />
<h4>
フォーム</h4>
Angular ngModel 使い方<br />
<a href="https://kainobi2.blogspot.com/2018/11/angular-ngmodel.html" target="_blank">https://kainobi2.blogspot.com/2018/11/angular-ngmodel.html</a><br />
<br />
Angular Reactive Forms(リアクティブフォーム)の使い方<br />
<a href="https://kainobi2.blogspot.com/2019/02/angular-reactive-forms.html" target="_blank">https://kainobi2.blogspot.com/2019/02/angular-reactive-forms.html</a><br />
<br />
<h4>
ルーティング</h4>
Angular モジュールの lazy loading (遅延読み込み)<br />
<a href="https://kainobi2.blogspot.com/2019/03/angular-lazy-loading.html" target="_blank">https://kainobi2.blogspot.com/2019/03/angular-lazy-loading.html</a><br />
<br />
<h4>
パイプ</h4>
Angular async パイプで HTML テンプレートに独自クラスのオブジェクトを表示<br />
<a href="https://kainobi2.blogspot.com/2019/02/angular-async-html.html" target="_blank">https://kainobi2.blogspot.com/2019/02/angular-async-html.html</a><br />
<br />
<h4>
HTTP 通信</h4>
Angular HttpClient を利用した HTTP 通信 <br />
<a href="https://kainobi2.blogspot.com/2019/02/angular-httpclient-http.html" target="_blank">https://kainobi2.blogspot.com/2019/02/angular-httpclient-http.html</a><br />
<br />
Angular in-memory-web-api を使う<br />
<a href="https://kainobi2.blogspot.com/2019/04/angular-in-memory-web-api.html" target="_blank">https://kainobi2.blogspot.com/2019/04/angular-in-memory-web-api.html</a><br />
<br />
<h4>
イベントライフサイクルフック</h4>
Angular ngOnChanges イベント<br />
<a href="https://kainobi2.blogspot.com/2019/02/angular-ngonchanges.html" target="_blank">https://kainobi2.blogspot.com/2019/02/angular-ngonchanges.html</a><br />
<br />
<h4>
PWA</h4>
Angular アプリケーションの PWA 化<br />
<a href="https://kainobi2.blogspot.com/2019/02/angular-pwa.html" target="_blank">https://kainobi2.blogspot.com/2019/02/angular-pwa.html</a><br />
<br />
<h4>
ユーザー認証</h4>
<div>
Angular Firebase による Google アカウント認証(ログイン・ログアウト)の実装方法</div>
<div>
<a href="https://kainobi2.blogspot.com/2019/03/angular-firebase-google.html" target="_blank">https://kainobi2.blogspot.com/2019/03/angular-firebase-google.html</a></div>
<div>
<br /></div>
<h4>
その他</h4>
Angular 関連メモ<br />
<a href="https://kainobi2.blogspot.com/2018/06/angular.html" target="_blank">https://kainobi2.blogspot.com/2018/06/angular.html</a><br />
<br />
Angular5 TODO リスト作成<br />
<a href="https://kainobi2.blogspot.com/2018/02/angular5-todo.html" target="_blank">https://kainobi2.blogspot.com/2018/02/angular5-todo.html</a><br />
<br />
Angular メモ<br />
<a href="https://kainobi2.blogspot.com/2017/09/angular.html" target="_blank">https://kainobi2.blogspot.com/2017/09/angular.html</a><br />
<br />
Netlify で Angular のルーティング利用時に必要な設定<br />
<div>
<a href="https://kainobi2.blogspot.com/2019/02/netlify-angular.html" target="_blank">https://kainobi2.blogspot.com/2019/02/netlify-angular.html</a></div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4199838678392698089.post-28715054441905911692019-02-10T15:09:00.000+09:002019-02-24T16:30:25.887+09:00Angular @ViewChild デコレーターAngular では、HTML テンプレート上に定義されているコンポーネントを TypeScript 側から参照する機能として、@ViewChild デコレーターが提供されています。<br />
<br />
例えば、AppComponent に次の MyLabelComponent を利用しているとします。<br />
<br />
<br />
<b>MyLabelComponent (TypeScript)</b><br />
<pre class="rich-diff-level-zero" style="-webkit-text-stroke-width: 0px; background-color: #f6f8fa; border-radius: 3px; box-sizing: border-box; color: #24292e; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; line-height: 1.45; margin-bottom: 16px; margin-left: 15px; margin-top: 0px; orphans: 2; overflow-wrap: normal; overflow: auto; padding: 10px 20px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px;"><span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">import</span> { <span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">Component</span>, <span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">Input</span> } <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">from</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>@angular/core<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>;
@<span class="pl-en rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">Component</span>({
selector: <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>app-my-label<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>,
templateUrl: <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>./my-label.component.html<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>,
styleUrls: [<span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>./my-label.component.css<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>]
})
<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">export</span> <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">class</span> <span class="pl-en rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">MyLabelComponent</span> {
<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">constructor</span>() { }
@<span class="pl-en rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">Input</span>(<span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>text<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>) text<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">:</span> <span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">string</span>;
}</pre>
<b>MyLabelComponent (HTML テンプレート) </b><br />
<pre class="rich-diff-level-zero" style="-webkit-text-stroke-width: 0px; background-color: #f6f8fa; border-radius: 3px; box-sizing: border-box; color: #24292e; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; line-height: 1.45; margin-bottom: 16px; margin-left: 15px; margin-top: 0px; orphans: 2; overflow-wrap: normal; overflow: auto; padding: 10px 20px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px;"><<span class="pl-ent rich-diff-level-one" style="box-sizing: border-box; color: #22863a;">p</span>>
my-label works! {{text}}
</<span class="pl-ent rich-diff-level-one" style="box-sizing: border-box; color: #22863a;">p</span>></pre>
<br />
AppComponent の TypeScript 上で、@ViewChild デコレーターに型を指定するかたちで、MyLabelComponent を参照することができます。<br />
<br />
<b>AppComponent (TypeScript)</b><br />
<pre class="rich-diff-level-zero" style="-webkit-text-stroke-width: 0px; background-color: #f6f8fa; border-radius: 3px; box-sizing: border-box; color: #24292e; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; line-height: 1.45; margin-bottom: 16px; margin-left: 15px; margin-top: 0px; orphans: 2; overflow-wrap: normal; overflow: auto; padding: 10px 20px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px;"><span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">import</span> { <span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">Component</span>, <span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">ViewChild</span> } <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">from</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>@angular/core<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>;
<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">import</span> { <span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">MyLabelComponent</span> } <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">from</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>./my-label/my-label.component<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>;
@<span class="pl-en rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">Component</span>({
selector: <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>app-root<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>,
templateUrl: <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>./app.component.html<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>,
styleUrls: [<span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>./app.component.css<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>]
})
<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">export</span> <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">class</span> <span class="pl-en rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">AppComponent</span> {
title <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">=</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>app1<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>;
<span style="background-color: yellow;">@<span class="pl-en rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">ViewChild</span></span>(<span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">MyLabelComponent</span>) myLabel<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">:</span> <span class="pl-en rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">MyLabelComponent</span>;
getText() {
<span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">console</span>.<span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">log</span>(<span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">this</span>.<span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">myLabel</span>.<span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">text</span>);
}
}</pre>
<br />
<b>AppComponent (HTML テンプレート)</b><br />
<pre class="rich-diff-level-zero" style="-webkit-text-stroke-width: 0px; background-color: #f6f8fa; border-radius: 3px; box-sizing: border-box; color: #24292e; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; line-height: 1.45; margin-bottom: 16px; margin-left: 15px; margin-top: 0px; orphans: 2; overflow-wrap: normal; overflow: auto; padding: 10px 20px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px;"><<span class="pl-ent rich-diff-level-one" style="box-sizing: border-box; color: #22863a;">app-my-label</span> <span class="pl-e rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">text</span>=<span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">"</span>abc<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">"</span></span>></<span class="pl-ent rich-diff-level-one" style="box-sizing: border-box; color: #22863a;">app-my-label</span>></pre>
<br />
<br />
なお、複数の MyLabelComponent が存在する場合、 テンプレート参照変数を利用してコンポーネントを特定します。(この例では、HTML テンプレート上の #label1 や #label2 がテンプレート参照変数です。)<br />
<br />
<b> AppComponent (TypeScript)</b><br />
<pre class="rich-diff-level-zero" style="-webkit-text-stroke-width: 0px; background-color: #f6f8fa; border-radius: 3px; box-sizing: border-box; color: #24292e; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; line-height: 1.45; margin-bottom: 16px; margin-left: 15px; margin-top: 0px; orphans: 2; overflow-wrap: normal; overflow: auto; padding: 10px 20px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px;"><span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">export</span> <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">class</span> <span class="pl-en rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">AppComponent</span> {
title <span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">=</span> <span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span>app1<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>;
@<span class="pl-en rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">ViewChild</span>(<span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span><span style="background-color: yellow;">label1</span><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>) myLabel1<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">:</span> <span class="pl-en rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">MyLabelComponent</span>;
@<span class="pl-en rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">ViewChild</span>(<span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span><span style="background-color: yellow;">label2</span><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">'</span></span>) myLabel2<span class="pl-k rich-diff-level-one" style="box-sizing: border-box; color: #d73a49;">:</span> <span class="pl-en rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">MyLabelComponent</span>;
getText() {
<span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">console</span>.<span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">log</span>(<span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">this</span>.<span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">myLabel1</span>.<span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">text</span>);
<span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">console</span>.<span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">log</span>(<span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">this</span>.<span class="pl-smi rich-diff-level-one" style="box-sizing: border-box; color: #24292e;">myLabel2</span>.<span class="pl-c1 rich-diff-level-one" style="box-sizing: border-box; color: #005cc5;">text</span>);
}
}</pre>
<br />
<b>AppComponent (HTML テンプレート)</b><br />
<pre class="rich-diff-level-zero" style="-webkit-text-stroke-width: 0px; background-color: #f6f8fa; border-radius: 3px; box-sizing: border-box; color: #24292e; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; line-height: 1.45; margin-bottom: 16px; margin-left: 15px; margin-top: 0px; orphans: 2; overflow-wrap: normal; overflow: auto; padding: 10px 20px; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px;"><<span class="pl-ent rich-diff-level-one" style="box-sizing: border-box; color: #22863a;">app-my-label</span> <span style="background-color: yellow;"><span class="pl-e rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">#label1</span></span> <span class="pl-e rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">text</span>=<span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">"</span>abc<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">"</span></span>></<span class="pl-ent rich-diff-level-one" style="box-sizing: border-box; color: #22863a;">app-my-label</span>>
<<span class="pl-ent rich-diff-level-one" style="box-sizing: border-box; color: #22863a;">app-my-label</span> <span style="background-color: yellow;"><span class="pl-e rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">#label2</span></span> <span class="pl-e rich-diff-level-one" style="box-sizing: border-box; color: #6f42c1;">text</span>=<span class="pl-s rich-diff-level-one" style="box-sizing: border-box; color: #032f62;"><span class="pl-pds" style="box-sizing: border-box; color: #032f62;">"</span>def<span class="pl-pds" style="box-sizing: border-box; color: #032f62;">"</span></span>></<span class="pl-ent rich-diff-level-one" style="box-sizing: border-box; color: #22863a;">app-my-label</span>></pre>
<br />
<br />
Angular に関連するトピックは次のページにまとめてあります。<br />
<br />
Angular 機能紹介一覧<br />
<a href="https://kainobi2.blogspot.com/2019/02/angular.html" target="_blank">https://kainobi2.blogspot.com/2019/02/angular.html</a><br />
Unknownnoreply@blogger.com0