Angular-Materialを動かすための最小限テンプレートサンプル
最近Angular-Material(以下「AM」)を使ってみている。
material.angularjs.org
AMはまだ開発の初期段階ではあるものの、すでに結構使える状態ではないかと思う。
しかし、まだドキュメントが不十分でとっつきにくい。デモページでソースコードが見られるようになってはいるものの、headの終端から始まっていてコード全体が見通しにくい。
結局、AMのリポジトリをクローンしてデモの中身を直接見に行かなければならなかった。
そこで、ここにAMを動かすための最小限テンプレートの例を書いておきたいと思う。最終的にはこのように表示される。
Angular-Materialコンポーネントのインストール
まずは適当な場所にプロジェクトディレクトリをつくり、AMをインストールする。
これで必要なモジュールが全て揃う。
index.html
ここでのポイントはbodyタグの「layout="vertical"」。これを指定しないとコンテンツ部分が長くなってスクロールしたときにツールバーも上にスクロールしてしまう。
css/app.css
Cordovaでのモバイルアプリ開発を意識した設定を入れているが、通常のWebアプリを開発するならハッキリ言ってこのCSSは無くてもいい。AMを動かすために独自のCSSで色々と設定する必要は無い。
js/app.js
ここでのポイントは追加モジュールとして「ngMaterial」を指定すること。これを指定しないと全く動かない。
テーマを指定する
テーマの読み込みと指定方法を探すのに少々苦労した(^^);
デフォルトテーマは「angular-material.min.css」。その他のテーマは追加でthemesの配下にあるテーマファイルを読み込む。
例えばこのようなファイル「bower_components/angular-material/themes/amber-theme.css」。テーマのCSSを読み込む順番は任意で構わない。
その上で、各コンポーネントに「md-theme」のアトリビュートを使ってテーマを指定する。
md-buttonはデフォルト状態ではテーマを変更しても色が変わらない。「class="md-primary"」などの色が付くようなクラスを指定する必要がある。
全プロジェクトファイル
GitHubに上げてある。
junkoro/AngularMaterialMin
ライセンス?
WTFPL – Do What the Fuck You Want to Public License
material.angularjs.org
AMはまだ開発の初期段階ではあるものの、すでに結構使える状態ではないかと思う。
しかし、まだドキュメントが不十分でとっつきにくい。デモページでソースコードが見られるようになってはいるものの、headの終端から始まっていてコード全体が見通しにくい。
結局、AMのリポジトリをクローンしてデモの中身を直接見に行かなければならなかった。
そこで、ここにAMを動かすための最小限テンプレートの例を書いておきたいと思う。最終的にはこのように表示される。
Angular-Materialコンポーネントのインストール
まずは適当な場所にプロジェクトディレクトリをつくり、AMをインストールする。
# cd ~/git
# mkdir AngularMaterialMin
# cd AngularMaterialMin
# bower install angular-material
これで必要なモジュールが全て揃う。
index.html
<!DOCTYPE html> <html ng-app="app" ng-controller="AppCtrl"> <head> <meta charset="utf-8" /> <meta name="format-detection" content="telephone=no" /> <meta name="msapplication-tap-highlight" content="no" /> <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height" /> <title>AngularMaterialMin</title> <!-- CSS --> <link rel="stylesheet" href="bower_components/angular-material/angular-material.min.css"> <link rel="stylesheet" type="text/css" href="css/app.css" /> <!-- JS --> <script src="bower_components/hammerjs/hammer.min.js"></script> <script src="bower_components/angular/angular.min.js"></script> <script src="bower_components/angular-animate/angular-animate.min.js"></script> <script src="bower_components/angular-aria/angular-aria.min.js"></script> <script src="bower_components/angular-material/angular-material.min.js"></script> <script src="js/app.js"></script> </head> <body layout="vertical"> <!-- ツールバー --> <md-toolbar> <div class="md-toolbar-tools"> <span flex>AngularMaterialMin</span> <md-button aria-label="ボタン" ng-click="onClickBtn();">ボタン</md-button> </div> </md-toolbar> <!-- コンテンツ --> <md-content class="md-padding"> <p>ここにコンテンツ</p> </md-content> </body> </html>
ここでのポイントはbodyタグの「layout="vertical"」。これを指定しないとコンテンツ部分が長くなってスクロールしたときにツールバーも上にスクロールしてしまう。
css/app.css
* { -webkit-tap-highlight-color: rgba(0, 0, 0, 0); -webkit-touch-callout: none; -webkit-text-size-adjust: none; -webkit-user-select: none; } input[type=text] { -webkit-user-select: auto; }
Cordovaでのモバイルアプリ開発を意識した設定を入れているが、通常のWebアプリを開発するならハッキリ言ってこのCSSは無くてもいい。AMを動かすために独自のCSSで色々と設定する必要は無い。
js/app.js
var app = angular.module("app", ["ngMaterial"]); app.controller('AppCtrl', function ($scope) { console.log('メインコントローラー初期化'); $scope.onClickBtn = function(evt) { console.log("onClickBtn()"); } });
ここでのポイントは追加モジュールとして「ngMaterial」を指定すること。これを指定しないと全く動かない。
テーマを指定する
テーマの読み込みと指定方法を探すのに少々苦労した(^^);
デフォルトテーマは「angular-material.min.css」。その他のテーマは追加でthemesの配下にあるテーマファイルを読み込む。
例えばこのようなファイル「bower_components/angular-material/themes/amber-theme.css」。テーマのCSSを読み込む順番は任意で構わない。
その上で、各コンポーネントに「md-theme」のアトリビュートを使ってテーマを指定する。
<md-progress-linear md-theme="amber" mode="determinate" ng-value="50"></md-progress-linear>
md-buttonはデフォルト状態ではテーマを変更しても色が変わらない。「class="md-primary"」などの色が付くようなクラスを指定する必要がある。
全プロジェクトファイル
GitHubに上げてある。
junkoro/AngularMaterialMin
ライセンス?
WTFPL – Do What the Fuck You Want to Public License
コメント
コメントを投稿