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


コメント
コメントを投稿