Angular4さわる
これは何か
新機能開発をAngular4で作り始めました。その時に調べたことのメモです。
Angular CLI使っています。
前提知識
調べたことメモ
Angular CLI
- 本家 README
ng new
- new · angular/angular-cli Wiki · GitHub
- 例: scssを利用したプロジェクトを始めたい
ng new [name] --style=scss
ng serve
ng generate
- 便利、基本的にファイルはこれで生成しています
- generate · angular/angular-cli Wiki · GitHub
Autoprefixer
環境変数
上記ページ以外にもWikiのstoriesからいろいろ確認できます。
stories · angular/angular-cli Wiki · GitHub
IE9, IE10, IE11対応
src/polyfills.ts
- 必要なpolyfillが用意されている
(最初はコメントアウトされている)
- 必要なpolyfillが用意されている
ビルド
- build · angular/angular-cli Wiki · GitHub
-dev
-prod
はメタフラグ- base urlを変えたい
--base-href
SCSS
- 本家
- Angular - linkComponent Styles
- Special selectors
:host
to target styles in the element that hosts the component
- View encapsulation
- Special selectors
- Angular - linkComponent Styles
- Bootstrap 4
npm install bootstrap@4.0.0-alpha.6 --save
- SCSS with Angular-cli - Qiita
VS Codeエクステンション
- Angular Language Service - Visual Studio Marketplace
- テンプレートでも、コンポーネントメンバーの補完が可能になります
-
- 自分の環境でも個別Htmlファイルの場合、うまく動いてくれませんでした
- Angular 2+ Snippets - TypeScript, Html, ngRx, Angular Flex Layout & Testing - Visual Studio Marketplace
- AngularJSのコードを書くとAngularのコードをサジェストしてくれます
よかったチュートリアル
- The Ultimate Angular CLI Reference Guide — SitePoint
- Angular 2 Tutorial: Create a CRUD App with Angular CLI — SitePoint
- Understanding Component Architecture: Refactoring an Angular App — SitePoint
- Angular and RxJS: Create an API Service to Talk to a REST Backend — SitePoint
Angular CLIを利用したチュートリアルのシリーズです。
Githubにコードがあります。
GitHub - sitepoint-editors/angular-todo-app: Todo app for Angular2+
画像を内接リサイズにする
css - Resize to fit image in div, and center horizontally and vertically - Stack Overflow
transform
とposition: absolute
を利用します。
前の記事のアスペクト比を保つcssを利用するとこんな感じです。
object-fit
というプロパティを利用すればもっと簡単でした。(でもIEには対応していない)
object-fit - CSS | MDN
アスペクト比を保つ
「padding-topに%を設定すると、包括しているブロックの幅を基準にする」という仕様を利用します。
以下のコードは、アスペクト比を4:3にする場合。
.a43 { border: 1px solid #000; width: 160px; position: relative; } .a43:before { content: ''; display: block; /* アスペクト比 4:3 */ padding-top:75%; } .a43-inner { position: absolute; top: 0; }
<div class="a43"> <div class="a43-inner"> foo<br> bar </div> </div>
AngularでBugsnagを利用
Angular4始めました。
Angularでエラーをインターセプトする場合はこんな感じ。
import { ErrorHandler, Injectable} from '@angular/core'; import { environment } from '../environments/environment'; @Injectable() export class GlobalErrorHandler implements ErrorHandler { constructor() { Bugsnag.releaseStage = = environment.production ? 'production' : 'develop'; } handleError(error) { Bugsnag.notifyException(error); throw error; } } // --- @NgModule({ providers: [{ provide: ErrorHandler, useClass: GlobalErrorHandler }] }) export class AppModule { }
VS Codeでタイトルバーの色変更
複数のプロジェクトやライブラリをみる場合に便利。
画像の例は、自分の仕事とAngularとBootstrap4を開いている場合。
// Place your settings in this file to overwrite default and user settings. { "workbench.colorCustomizations": { "titleBar.activeBackground": "#1976d2" } }
JavaScript (TypeScript) クラス、型の判定
class Foo {} class Bar extends Foo {} const foo = new Foo(); const bar = new Bar(); console.log(typeof foo); // -> 'object' console.log(foo.constructor === Foo); // -> true console.log(foo instanceof Foo); // -> true console.log(foo instanceof Object); // -> true console.log(bar.constructor === Foo); // -> false (継承元はわからない) console.log(bar.constructor === Bar); // -> true console.log(bar instanceof Foo); // -> true console.log(bar instanceof Bar); // -> true