SlideShare ist ein Scribd-Unternehmen logo
1 von 13
AngularJSの簡単な紹介
1

2014/1/7
今日の目的
AngularJSフレームワークを使ってみたいと思わせる
全てのうんこJavaScript
コードを,生まれる前に
消し去りたい

2

© Magica Quartet
脱線: JavaScriptの残念さと人々の戦い
 貧弱な組み込みメソッド

→ 簡便な記述を可能にする便利ライブラリ jQuery underscore.js
 残念なスコープの仕様

→ モジュール化を支援するライブラリ require.js
 View

(HTML)と密結合なりがち

→ MV*系フレームワーク Knockout.js

AngularJS Backbone.js

 そもそもJavaScript書きたくない
→ いわゆるAltJSたち CoffeeScript TypeScript JSX
3
AngularJS,最近流行ってるぽい

Google検索トレンド

Qiita2013アドベントカレンダー
ストック数比較

4
AngularJSのよろしいところ
発表目次
HTMLがそのままテンプレート
 双方向データバインディングによるModel・Viewの同期
 便利な組み込みserviceたち
 組み込みdirectiveによるリスト・フィルタなどの定番処理


今日は省略
Dependency Injectionによるモジュール性の向上
 Routing機構によって複数Viewを持つアプリも開発可能


5
テンプレートとしてのHTML, 双方向データバインディング

6

http://daisy1754.github.io/angular-simple-demo-flickr-cat/simplest-demo.html
テンプレートとしてのHTML, 双方向データバインディング

AngularJSを利用するアプリの宣言

yourNameモデルの値を表示

Inputタグ(View)とyourName
モデルの値をバインド

Inputタグの値の変化が
yourNameモデルに伝わり
Viewも変化する 7
http://daisy1754.github.io/angular-simple-demo-flickr-cat/simplest-demo.html
AngularJSで簡単に実現できるページの例
FlickrからJSON形式で持ってきた画像の表示 + インタラクティブに絞り込み
JS/HTMLあわせて40行くらい

8

http://daisy1754.github.io/angular-simple-demo-flickr-cat/flickr-cat.html
コード説明(1/3): API叩いてデータ取得
HTML
このbodyタグで囲まれる部分は
PhotoCtrlによって制御される

JavaScript

PhotoCtrlの宣言

組み込みの$httpを利用して,
flickrAPIにアクセス,結果のJSONを
9
そのままモデルに格納
コード説明(2/3): 取得結果リストを表示
Ng-repeatが指定されたタグは
繰り返し処理される
HTML

10
コード説明(3/3): リストのフィルタリング

HTML

titleFilterがtrueとなる要素のみ表示

JavaScript

11
まとめ
具体例を用いてAngularJSを紹介した
HTMLをテンプレート的に利用
 双方向データバインディング
 ng-repeatなどの便利directive
 $httpなどの便利service
により,コード量減りつつDOMを意識せず
クライアントサイドプログラミングができそう


12
参考資料
AngularJS 勉強会のまとめ (動画・スライド) #ng_jp | Engine Yard Blog JP
http://www.engineyard.co.jp/blog/2013/angularjs-meetup-4th/
AngularJS公式チュートリアル
http://docs.angularjs.org/tutorial

今、AngularJSというフレームワークがヤバい - (゚∀゚)o彡 sasata299's blog
http://blog.livedoor.jp/sasata299/archives/51966228.html

13

Weitere ähnliche Inhalte

Was ist angesagt?

Flux react現状確認会
Flux react現状確認会Flux react現状確認会
Flux react現状確認会
VOYAGE GROUP
 
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
david9142
 

Was ist angesagt? (20)

ng-mtg#6 AngularJS ディレクティブ・パターン
ng-mtg#6 AngularJS ディレクティブ・パターンng-mtg#6 AngularJS ディレクティブ・パターン
ng-mtg#6 AngularJS ディレクティブ・パターン
 
React.js + Flux
React.js + FluxReact.js + Flux
React.js + Flux
 
Angular js開発事例
Angular js開発事例Angular js開発事例
Angular js開発事例
 
React を導入した フロントエンド開発
React を導入したフロントエンド開発React を導入したフロントエンド開発
React を導入した フロントエンド開発
 
angular1脳で見るangular2
angular1脳で見るangular2angular1脳で見るangular2
angular1脳で見るangular2
 
AngularJS 概説
AngularJS 概説AngularJS 概説
AngularJS 概説
 
Enterprise x AngularJS
Enterprise x AngularJSEnterprise x AngularJS
Enterprise x AngularJS
 
AngularJS入門
AngularJS入門AngularJS入門
AngularJS入門
 
開発ライフサイクルから見たAngularJS
開発ライフサイクルから見たAngularJS開発ライフサイクルから見たAngularJS
開発ライフサイクルから見たAngularJS
 
Angular1&2
Angular1&2Angular1&2
Angular1&2
 
Flux react現状確認会
Flux react現状確認会Flux react現状確認会
Flux react現状確認会
 
Angular2
Angular2Angular2
Angular2
 
Angular#Kanazawa
Angular#KanazawaAngular#Kanazawa
Angular#Kanazawa
 
サーバサイドエンジニアが 1年間まじめにSPAやってみた
サーバサイドエンジニアが 1年間まじめにSPAやってみたサーバサイドエンジニアが 1年間まじめにSPAやってみた
サーバサイドエンジニアが 1年間まじめにSPAやってみた
 
AngularJSからReactに移ったケースの話
AngularJSからReactに移ったケースの話AngularJSからReactに移ったケースの話
AngularJSからReactに移ったケースの話
 
AngularJSの高速化
AngularJSの高速化AngularJSの高速化
AngularJSの高速化
 
コンポーネント指向による、Reactのベストプラクティスとバッドプラクティス
コンポーネント指向による、Reactのベストプラクティスとバッドプラクティスコンポーネント指向による、Reactのベストプラクティスとバッドプラクティス
コンポーネント指向による、Reactのベストプラクティスとバッドプラクティス
 
20160927 reactmeetup
20160927 reactmeetup20160927 reactmeetup
20160927 reactmeetup
 
MVCもやもや話
MVCもやもや話MVCもやもや話
MVCもやもや話
 
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
 

Andere mochten auch

htmlとjsだけでチャットが実装できちゃった話
htmlとjsだけでチャットが実装できちゃった話htmlとjsだけでチャットが実装できちゃった話
htmlとjsだけでチャットが実装できちゃった話
司 知花
 
HTML5がもたらすアプリ開発へのインパクト
HTML5がもたらすアプリ開発へのインパクトHTML5がもたらすアプリ開発へのインパクト
HTML5がもたらすアプリ開発へのインパクト
Shumpei Shiraishi
 
Reactive Programming
Reactive ProgrammingReactive Programming
Reactive Programming
maruyama097
 
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
Akira Inoue
 
CLR/H#74 LT IT勉強会発表用イチオシツール
CLR/H#74 LT IT勉強会発表用イチオシツールCLR/H#74 LT IT勉強会発表用イチオシツール
CLR/H#74 LT IT勉強会発表用イチオシツール
Jun-ichi Sakamoto
 

Andere mochten auch (20)

Angular js 入門介紹
Angular js 入門介紹Angular js 入門介紹
Angular js 入門介紹
 
AngularJS入門の巻2
AngularJS入門の巻2AngularJS入門の巻2
AngularJS入門の巻2
 
AngularJS入門の巻
AngularJS入門の巻AngularJS入門の巻
AngularJS入門の巻
 
AngularJS 入門
AngularJS 入門AngularJS 入門
AngularJS 入門
 
AIChallange発表資料
AIChallange発表資料AIChallange発表資料
AIChallange発表資料
 
Angularを使ってみる実例いくつか (2015/4/29 GDGKobe)
Angularを使ってみる実例いくつか (2015/4/29 GDGKobe)Angularを使ってみる実例いくつか (2015/4/29 GDGKobe)
Angularを使ってみる実例いくつか (2015/4/29 GDGKobe)
 
Angular.jsについてちょっとしゃべる
Angular.jsについてちょっとしゃべるAngular.jsについてちょっとしゃべる
Angular.jsについてちょっとしゃべる
 
htmlとjsだけでチャットが実装できちゃった話
htmlとjsだけでチャットが実装できちゃった話htmlとjsだけでチャットが実装できちゃった話
htmlとjsだけでチャットが実装できちゃった話
 
はじめてのAIプログラミング 5章: 知識表現
はじめてのAIプログラミング 5章: 知識表現はじめてのAIプログラミング 5章: 知識表現
はじめてのAIプログラミング 5章: 知識表現
 
HTML5がもたらすアプリ開発へのインパクト
HTML5がもたらすアプリ開発へのインパクトHTML5がもたらすアプリ開発へのインパクト
HTML5がもたらすアプリ開発へのインパクト
 
AngularJS 2.0 Jumpstart
AngularJS 2.0 JumpstartAngularJS 2.0 Jumpstart
AngularJS 2.0 Jumpstart
 
Reactive Programming
Reactive ProgrammingReactive Programming
Reactive Programming
 
[予告篇] みんなで同時プレイするクイズWebアプリでCodeQuizに挑戦!
[予告篇] みんなで同時プレイするクイズWebアプリでCodeQuizに挑戦![予告篇] みんなで同時プレイするクイズWebアプリでCodeQuizに挑戦!
[予告篇] みんなで同時プレイするクイズWebアプリでCodeQuizに挑戦!
 
「それでも人生にイエスと言う」を読んで
「それでも人生にイエスと言う」を読んで「それでも人生にイエスと言う」を読んで
「それでも人生にイエスと言う」を読んで
 
イラスト日用服飾辞典/三面記事の歴史/健康男 を読んで
イラスト日用服飾辞典/三面記事の歴史/健康男 を読んでイラスト日用服飾辞典/三面記事の歴史/健康男 を読んで
イラスト日用服飾辞典/三面記事の歴史/健康男 を読んで
 
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
 
最近、リアルタイムWebが面白い
最近、リアルタイムWebが面白い最近、リアルタイムWebが面白い
最近、リアルタイムWebが面白い
 
CLR/H#74 LT IT勉強会発表用イチオシツール
CLR/H#74 LT IT勉強会発表用イチオシツールCLR/H#74 LT IT勉強会発表用イチオシツール
CLR/H#74 LT IT勉強会発表用イチオシツール
 
More Azure Websites! - JAZUGさっぽろ "きたあず" 第5回勉強会ライトニングトーク
More Azure Websites! - JAZUGさっぽろ "きたあず" 第5回勉強会ライトニングトークMore Azure Websites! - JAZUGさっぽろ "きたあず" 第5回勉強会ライトニングトーク
More Azure Websites! - JAZUGさっぽろ "きたあず" 第5回勉強会ライトニングトーク
 
はじめにことばありき
はじめにことばありきはじめにことばありき
はじめにことばありき
 

Ähnlich wie AngularJSを浅めに紹介します

AngularJSを触ってみた
AngularJSを触ってみたAngularJSを触ってみた
AngularJSを触ってみた
tomowata
 
わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~
わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~
わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~
normalian
 
今度こそ始めるjQuery超入門
今度こそ始めるjQuery超入門今度こそ始めるjQuery超入門
今度こそ始めるjQuery超入門
西畑 一馬
 

Ähnlich wie AngularJSを浅めに紹介します (20)

Alt01-LT
Alt01-LTAlt01-LT
Alt01-LT
 
AngularJSを触ってみた
AngularJSを触ってみたAngularJSを触ってみた
AngularJSを触ってみた
 
JavaScript(AngularJS・React.js)で作る iOS・Androidアプリハンズオン
JavaScript(AngularJS・React.js)で作る iOS・AndroidアプリハンズオンJavaScript(AngularJS・React.js)で作る iOS・Androidアプリハンズオン
JavaScript(AngularJS・React.js)で作る iOS・Androidアプリハンズオン
 
Angular js or_backbonejs
Angular js or_backbonejsAngular js or_backbonejs
Angular js or_backbonejs
 
Sails.jsのメリット・デメリット
Sails.jsのメリット・デメリットSails.jsのメリット・デメリット
Sails.jsのメリット・デメリット
 
多分モダンなWebアプリ開発
多分モダンなWebアプリ開発多分モダンなWebアプリ開発
多分モダンなWebアプリ開発
 
今後のWeb開発の未来を考えてangular jsにしました(拡大版)
今後のWeb開発の未来を考えてangular jsにしました(拡大版)今後のWeb開発の未来を考えてangular jsにしました(拡大版)
今後のWeb開発の未来を考えてangular jsにしました(拡大版)
 
jQueryを中心としたJavaScript
jQueryを中心としたJavaScriptjQueryを中心としたJavaScript
jQueryを中心としたJavaScript
 
Mvc conf session_5_isami
Mvc conf session_5_isamiMvc conf session_5_isami
Mvc conf session_5_isami
 
Web制作勉強会 #2
Web制作勉強会 #2Web制作勉強会 #2
Web制作勉強会 #2
 
AngularJSで業務システムUI部品化
AngularJSで業務システムUI部品化AngularJSで業務システムUI部品化
AngularJSで業務システムUI部品化
 
Node.jsで始める Modern JavaScript Framework
Node.jsで始める Modern JavaScript FrameworkNode.jsで始める Modern JavaScript Framework
Node.jsで始める Modern JavaScript Framework
 
俺とAngular JS 2
俺とAngular JS 2俺とAngular JS 2
俺とAngular JS 2
 
はじめてのVue.js
はじめてのVue.jsはじめてのVue.js
はじめてのVue.js
 
わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~
わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~
わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~
 
今度こそ始めるjQuery超入門
今度こそ始めるjQuery超入門今度こそ始めるjQuery超入門
今度こそ始めるjQuery超入門
 
Backbone.js入門
Backbone.js入門Backbone.js入門
Backbone.js入門
 
さわってみようReact.js、AngularJS(1系、2系)
さわってみようReact.js、AngularJS(1系、2系)さわってみようReact.js、AngularJS(1系、2系)
さわってみようReact.js、AngularJS(1系、2系)
 
テスト
テストテスト
テスト
 
AngularJS+TypeScriptを試してみた。
AngularJS+TypeScriptを試してみた。AngularJS+TypeScriptを試してみた。
AngularJS+TypeScriptを試してみた。
 

Mehr von nkazuki

Mehr von nkazuki (9)

X-PERT: Accurate Identification of Cross-Browser Issues in Web Applications (...
X-PERT: Accurate Identification of Cross-Browser Issues in Web Applications (...X-PERT: Accurate Identification of Cross-Browser Issues in Web Applications (...
X-PERT: Accurate Identification of Cross-Browser Issues in Web Applications (...
 
Mutation Analysis for JavaScript Web Applicaiton Testing SEKE2013
Mutation Analysis for JavaScript Web Applicaiton Testing  SEKE2013Mutation Analysis for JavaScript Web Applicaiton Testing  SEKE2013
Mutation Analysis for JavaScript Web Applicaiton Testing SEKE2013
 
Swarm Testing (ISSTA 2012) 輪講会用資料
Swarm Testing (ISSTA 2012) 輪講会用資料Swarm Testing (ISSTA 2012) 輪講会用資料
Swarm Testing (ISSTA 2012) 輪講会用資料
 
B4からM1までの間にやってきた研究について
B4からM1までの間にやってきた研究についてB4からM1までの間にやってきた研究について
B4からM1までの間にやってきた研究について
 
A sequential recommendation approach for interactive personalized story gener...
A sequential recommendation approach for interactive personalized story gener...A sequential recommendation approach for interactive personalized story gener...
A sequential recommendation approach for interactive personalized story gener...
 
"Puzzle-Based Automatic Testing: Bringing Humans into the Loop by Solving Puz...
"Puzzle-Based Automatic Testing: Bringing Humans into the Loop by Solving Puz..."Puzzle-Based Automatic Testing: Bringing Humans into the Loop by Solving Puz...
"Puzzle-Based Automatic Testing: Bringing Humans into the Loop by Solving Puz...
 
Reducing Confounding Bias in Predicate-Level Statistical Debugging Metrics 4分説明用
Reducing Confounding Bias in Predicate-Level Statistical Debugging Metrics 4分説明用Reducing Confounding Bias in Predicate-Level Statistical Debugging Metrics 4分説明用
Reducing Confounding Bias in Predicate-Level Statistical Debugging Metrics 4分説明用
 
Supporting View Transition Design of Smartphone Applications Using Web Templ...
Supporting View Transition Design of Smartphone Applications Using  Web Templ...Supporting View Transition Design of Smartphone Applications Using  Web Templ...
Supporting View Transition Design of Smartphone Applications Using Web Templ...
 
「Automated Oracle Creation Support, or: How I Learned to Stop Worrying about ...
「Automated Oracle Creation Support, or: How I Learned to Stop Worrying about ...「Automated Oracle Creation Support, or: How I Learned to Stop Worrying about ...
「Automated Oracle Creation Support, or: How I Learned to Stop Worrying about ...
 

Kürzlich hochgeladen

Kürzlich hochgeladen (11)

Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 

AngularJSを浅めに紹介します