libro
www.tuyano.com
初心者のためのAngularJS入門

AngularJSの基礎を理解しよう (4/5)

作成:2015-12-05 09:05
更新:2015-12-05 09:05

■初期化と計算

では、これをもう少し拡張して、少し使えそうなものを作ってみましょう。

下のリスト欄は、消費税の計算を行うサンプルです。フィールドに金額を入力すると、税込み(8%の税)の金額が下に表示されます。また、金額が1万円以上になると、金額表示がボールドになります。

■初期化処理について

今回は、新しいディレクティブが1つ追加されています。それは以下の部分です。
<body ng-init="num = 100">

この「ng-init」というディレクティブは、モデルの初期化を行うためのものです。これを用意しておくことで、モデルの値が指定の値に初期化されるようになります。

■式の利用

値を表示するマークアップの部分も少し変わっていますね。今回は、こんな感じで値を表示しています。
you typed: {{num * 1.08}}.

このようにマークアップには、式を設定することもできます。これにより計算結果が自動的に表示されるようになります。簡単でいいですね。

式を使ったマークアップは、よく見るともう1箇所あります。結果を表示している<p>タグの部分です。
<p style="font-weight:{{(num >= 10000) * 700}}">

num > 10000は、numの値が10000以上ならtrue、未満ならfalseになります。これに700をかけると、真偽値の値(trueまたは false)は整数の値(1または0)にキャストされ、1 * 700あるいは0 * 700になります。で、「10000以上ならボールド表示」となるわけです。

単に簡単な計算だけしかできなくても、こんな具合に面白いことができるんですね。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

<!doctype html>
<html ng-app>
<head>
    <title>AngularJS Sample</title>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
</head>
<body ng-init="num = 100">
    <div>
    <p>price:<input type="text" ng-model="num"></p>
    <p style="font-weight:{{(num >= 10000) * 700}}">
        you typed: {{num * 1.08}}.</p>
    </div>
</body>
</html>

※関連コンテンツ

「初心者のためのAngularJS入門」に戻る