AngularJS




Corporation, Okinawa JAPAN

宮里 忍

2014年08月21日

目次

  1. Webアプリケーションの新しい形
    • 既存のWebアプリケーション
    • シングルページアプリケーション
  2. AngularJSとは
  3. JavaScriptはなぜ複雑になるのか?
    • DOM操作
  4. AngularJSの各種機能
  5. polaris-webの紹介

Webアプリケーションの新しい形

既存のWebアプリケーション

Webアプリケーションの新しい形

シングルページアプリケーション

AngularJSとは

JavaScriptはなぜ複雑になるのか?

DOM操作

JavaScriptはなぜ複雑になるのか?

DOM操作の例

(HTML)
<img id="dom-demo" src="dom-demo01.png"/>

(JavaScript)
var imgObject = getElementById('dom-demo');
imgObject.src = "dom-demo02.png";


JavaScriptはなぜ複雑になるのか?

DOM操作の例

(HTML)
<img id="dom-demo" src="dom-demo01.png"/>

(JavaScript)
var imgObject = getElementById('dom-demo');
imgObject.src = "dom-demo02.png";


変数「imgObject」とid「dom-demo」が同一かは保証されない!

AngularJSのデータバインディング

(HTML)

      <div ng-controller="LoginController">
        <input type="text" ng-model="LoginController.user"/>
      </div>
    
(JavaScript)

    angular.module('app', [])
      .controller('LoginController', function($scope) {
        $scope.user = "shinobu";
      });
    

AngularJSのデータバインディング

AngularJSのテンプレートHTML

(HTML)

      <div ng-controller="LoginController">
        <input type="text" ng-model="LoginController.user"/>
      </div>
    

JavaScriptの保守はどうすると楽か?

AngularJS の DI 機能を利用すると単体テストがしやすくなる!

AngularJSのDI

AngularJSのDI(Dependency Injection : 依存性注入)の機能

polaris-web

polaris-webは、
開発標準構築PJで開発してるAngularJSを使用したフレームワーク

https://github.com/occ-corp/polaris-web

polaris-webの特徴

polaris-webの特徴

MVVM

TypeScript

TypeScirpt

Jade

Jade

(HTML)

      <div ng-controller="LoginController">
        <input type="text" ng-model="LoginController.user"/>
      </div>
    
(Jade)

      div(ng-controller='app.controller.LoginController')
        input(type='text', ng-model='login.user')
    

SASS

Bootstrap