Soumettre la recherche
Mettre en ligne
Componentization with Gilgamesh
•
1 j'aime
•
3,897 vues
Yusuke Goto
Suivre
Hope for componentizing ui elements with less pain.
Lire moins
Lire la suite
Technologie
Signaler
Partager
Signaler
Partager
1 sur 61
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
Magento meet up Tokyo#1 for Design
Magento meet up Tokyo#1 for Design
Miho Nakano
jQuery Mobile 最新情報 & Tips
jQuery Mobile 最新情報 & Tips
yoshikawa_t
jQuery Mobile 1.2 最新情報 & Tips
jQuery Mobile 1.2 最新情報 & Tips
yoshikawa_t
Jqm20120210
Jqm20120210
cmtomoda
Polymerで作る次世代ウェブサイト
Polymerで作る次世代ウェブサイト
Eiji Kitamura
Ruby on Rails Tutorial Chapter8-10
Ruby on Rails Tutorial Chapter8-10
Sea Mountain
Form libraries
Form libraries
Atsushi Odagiri
MTDDC Meetup TOKYO 2015 bit-part
MTDDC Meetup TOKYO 2015 bit-part
bitpart
Recommandé
Magento meet up Tokyo#1 for Design
Magento meet up Tokyo#1 for Design
Miho Nakano
jQuery Mobile 最新情報 & Tips
jQuery Mobile 最新情報 & Tips
yoshikawa_t
jQuery Mobile 1.2 最新情報 & Tips
jQuery Mobile 1.2 最新情報 & Tips
yoshikawa_t
Jqm20120210
Jqm20120210
cmtomoda
Polymerで作る次世代ウェブサイト
Polymerで作る次世代ウェブサイト
Eiji Kitamura
Ruby on Rails Tutorial Chapter8-10
Ruby on Rails Tutorial Chapter8-10
Sea Mountain
Form libraries
Form libraries
Atsushi Odagiri
MTDDC Meetup TOKYO 2015 bit-part
MTDDC Meetup TOKYO 2015 bit-part
bitpart
jQuery Mobile入門
jQuery Mobile入門
Shumpei Shiraishi
第5回 HTML5minutes! LT 「ねこでもできるWebGL」
第5回 HTML5minutes! LT 「ねこでもできるWebGL」
Shinnosuke Morimoto
なんでCSSすぐ死んでしまうん
なんでCSSすぐ死んでしまうん
Hayato Mizuno
0406web creators night_DeNA
0406web creators night_DeNA
DeNA_open_events
Pyramid入門
Pyramid入門
Atsushi Odagiri
HTML5, きちんと。
HTML5, きちんと。
Masataka Yakura
5分で分るflexbox
5分で分るflexbox
Azusa Tomita
Inline Layout
Inline Layout
Takazudo
Web ブラウザで DRM
Web ブラウザで DRM
Yusuke Goto
Atomic Design powered by React @ AbemaTV
Atomic Design powered by React @ AbemaTV
Yusuke Goto
Componentization for Reality
Componentization for Reality
Yusuke Goto
Make Your Presentations More Effective
Make Your Presentations More Effective
Yusuke Goto
Slides for Nonverbal Communication
Slides for Nonverbal Communication
Yusuke Goto
社内LTネタ ReactNative
社内LTネタ ReactNative
Oguri Toru
AngularでAmebaコミュニティサービス開発
AngularでAmebaコミュニティサービス開発
Yusuke Goto
マークアップの最適解を 見つけ出す方法
マークアップの最適解を 見つけ出す方法
Kasumi Morita
リニア放送型動画サービスの Web フロントエンド
リニア放送型動画サービスの Web フロントエンド
Yusuke Goto
AbemaTV Developer Conference 2016
AbemaTV Developer Conference 2016
康洋 板敷
祭りから半年たったプロジェクトにジョインしてみた
祭りから半年たったプロジェクトにジョインしてみた
Asuka Oizumi
FINAL FANTASY Record Keeper 演出データについて
FINAL FANTASY Record Keeper 演出データについて
dena_study
Atomic designで助かった人たち
Atomic designで助かった人たち
Iida Yukako
Introduction to Resource Hints
Introduction to Resource Hints
Shogo Sensui
Contenu connexe
Tendances
jQuery Mobile入門
jQuery Mobile入門
Shumpei Shiraishi
第5回 HTML5minutes! LT 「ねこでもできるWebGL」
第5回 HTML5minutes! LT 「ねこでもできるWebGL」
Shinnosuke Morimoto
なんでCSSすぐ死んでしまうん
なんでCSSすぐ死んでしまうん
Hayato Mizuno
0406web creators night_DeNA
0406web creators night_DeNA
DeNA_open_events
Pyramid入門
Pyramid入門
Atsushi Odagiri
HTML5, きちんと。
HTML5, きちんと。
Masataka Yakura
Tendances
(6)
jQuery Mobile入門
jQuery Mobile入門
第5回 HTML5minutes! LT 「ねこでもできるWebGL」
第5回 HTML5minutes! LT 「ねこでもできるWebGL」
なんでCSSすぐ死んでしまうん
なんでCSSすぐ死んでしまうん
0406web creators night_DeNA
0406web creators night_DeNA
Pyramid入門
Pyramid入門
HTML5, きちんと。
HTML5, きちんと。
En vedette
5分で分るflexbox
5分で分るflexbox
Azusa Tomita
Inline Layout
Inline Layout
Takazudo
Web ブラウザで DRM
Web ブラウザで DRM
Yusuke Goto
Atomic Design powered by React @ AbemaTV
Atomic Design powered by React @ AbemaTV
Yusuke Goto
Componentization for Reality
Componentization for Reality
Yusuke Goto
Make Your Presentations More Effective
Make Your Presentations More Effective
Yusuke Goto
Slides for Nonverbal Communication
Slides for Nonverbal Communication
Yusuke Goto
社内LTネタ ReactNative
社内LTネタ ReactNative
Oguri Toru
AngularでAmebaコミュニティサービス開発
AngularでAmebaコミュニティサービス開発
Yusuke Goto
マークアップの最適解を 見つけ出す方法
マークアップの最適解を 見つけ出す方法
Kasumi Morita
リニア放送型動画サービスの Web フロントエンド
リニア放送型動画サービスの Web フロントエンド
Yusuke Goto
AbemaTV Developer Conference 2016
AbemaTV Developer Conference 2016
康洋 板敷
祭りから半年たったプロジェクトにジョインしてみた
祭りから半年たったプロジェクトにジョインしてみた
Asuka Oizumi
FINAL FANTASY Record Keeper 演出データについて
FINAL FANTASY Record Keeper 演出データについて
dena_study
Atomic designで助かった人たち
Atomic designで助かった人たち
Iida Yukako
Introduction to Resource Hints
Introduction to Resource Hints
Shogo Sensui
JavaとOSSとAndroid - JavaAPI訴訟問題を考える
JavaとOSSとAndroid - JavaAPI訴訟問題を考える
Yusuke Suzuki
アメブロ2016 アメブロフロント刷新にみる ひかりとつらみ
アメブロ2016 アメブロフロント刷新にみる ひかりとつらみ
Kazunari Hara
なぜ人は必死でjQueryを捨てようとしているのか
なぜ人は必死でjQueryを捨てようとしているのか
Yoichi Toyota
Android lint-srp-practice
Android lint-srp-practice
cch-robo
En vedette
(20)
5分で分るflexbox
5分で分るflexbox
Inline Layout
Inline Layout
Web ブラウザで DRM
Web ブラウザで DRM
Atomic Design powered by React @ AbemaTV
Atomic Design powered by React @ AbemaTV
Componentization for Reality
Componentization for Reality
Make Your Presentations More Effective
Make Your Presentations More Effective
Slides for Nonverbal Communication
Slides for Nonverbal Communication
社内LTネタ ReactNative
社内LTネタ ReactNative
AngularでAmebaコミュニティサービス開発
AngularでAmebaコミュニティサービス開発
マークアップの最適解を 見つけ出す方法
マークアップの最適解を 見つけ出す方法
リニア放送型動画サービスの Web フロントエンド
リニア放送型動画サービスの Web フロントエンド
AbemaTV Developer Conference 2016
AbemaTV Developer Conference 2016
祭りから半年たったプロジェクトにジョインしてみた
祭りから半年たったプロジェクトにジョインしてみた
FINAL FANTASY Record Keeper 演出データについて
FINAL FANTASY Record Keeper 演出データについて
Atomic designで助かった人たち
Atomic designで助かった人たち
Introduction to Resource Hints
Introduction to Resource Hints
JavaとOSSとAndroid - JavaAPI訴訟問題を考える
JavaとOSSとAndroid - JavaAPI訴訟問題を考える
アメブロ2016 アメブロフロント刷新にみる ひかりとつらみ
アメブロ2016 アメブロフロント刷新にみる ひかりとつらみ
なぜ人は必死でjQueryを捨てようとしているのか
なぜ人は必死でjQueryを捨てようとしているのか
Android lint-srp-practice
Android lint-srp-practice
Similaire à Componentization with Gilgamesh
jQuery Mobileの基礎
jQuery Mobileの基礎
Takashi Okamoto
HTML5を使うためのプログレッシブエンハンスメント 〜すべての人に確実に情報を届けるために〜SwapSkillsFreeEventProgressiv...
HTML5を使うためのプログレッシブエンハンスメント 〜すべての人に確実に情報を届けるために〜SwapSkillsFreeEventProgressiv...
SwapSkills
第3回 Magento Cafe Plus モジュール開発入門
第3回 Magento Cafe Plus モジュール開発入門
Hirokazu Nishi
WordBech Osaka No.28
WordBech Osaka No.28
Kite Koga
a-blog cms「simple2016」で学ぶ カスタマイズ初級編
a-blog cms「simple2016」で学ぶ カスタマイズ初級編
Kazumich YAMAMOTO
jQuery Mobile 1.3 最新情報
jQuery Mobile 1.3 最新情報
yoshikawa_t
ディレクター・ノンプログラマー目線のMovable Type
ディレクター・ノンプログラマー目線のMovable Type
Yasufumi Nishiyama
a-blog cmsの2015年版の基本テーマを 使ったカスタマイズのポイント
a-blog cmsの2015年版の基本テーマを 使ったカスタマイズのポイント
Kasumi Morita
GoogleWebsiteOptimizerの使い方:非同期タグバージョン
GoogleWebsiteOptimizerの使い方:非同期タグバージョン
VOYAGE GROUP UIO strategies section
XPagesDay2014 A-4 XPages with jQueryMobile BADプラクティスガイド
XPagesDay2014 A-4 XPages with jQueryMobile BADプラクティスガイド
Tetsuji Hayashi
アプリコンテスト
アプリコンテスト
Tomonori Yamada
GWOの使い方~非同期タグVer~
GWOの使い方~非同期タグVer~
Kazumasa Harumoto
Try Jetpack
Try Jetpack
Hideaki Miyake
最高のツイッタークライアントを求めて
最高のツイッタークライアントを求めて
airtoxin Ishii
Form libraries
Form libraries
Atsushi Odagiri
Inside Movable Type
Inside Movable Type
純生 野田
「こんなサイトをこんなテーマ構成で作ってみました」Basercms 勉強会vol6
「こんなサイトをこんなテーマ構成で作ってみました」Basercms 勉強会vol6
Garyuten
EC-CUBEプラグイン講義
EC-CUBEプラグイン講義
ria1201
a-sap06「カスタムフィールドを使いこなす」
a-sap06「カスタムフィールドを使いこなす」
Seiko Kuchida
Zend Frameworkで始める携帯サイト
Zend Frameworkで始める携帯サイト
清水樹
Similaire à Componentization with Gilgamesh
(20)
jQuery Mobileの基礎
jQuery Mobileの基礎
HTML5を使うためのプログレッシブエンハンスメント 〜すべての人に確実に情報を届けるために〜SwapSkillsFreeEventProgressiv...
HTML5を使うためのプログレッシブエンハンスメント 〜すべての人に確実に情報を届けるために〜SwapSkillsFreeEventProgressiv...
第3回 Magento Cafe Plus モジュール開発入門
第3回 Magento Cafe Plus モジュール開発入門
WordBech Osaka No.28
WordBech Osaka No.28
a-blog cms「simple2016」で学ぶ カスタマイズ初級編
a-blog cms「simple2016」で学ぶ カスタマイズ初級編
jQuery Mobile 1.3 最新情報
jQuery Mobile 1.3 最新情報
ディレクター・ノンプログラマー目線のMovable Type
ディレクター・ノンプログラマー目線のMovable Type
a-blog cmsの2015年版の基本テーマを 使ったカスタマイズのポイント
a-blog cmsの2015年版の基本テーマを 使ったカスタマイズのポイント
GoogleWebsiteOptimizerの使い方:非同期タグバージョン
GoogleWebsiteOptimizerの使い方:非同期タグバージョン
XPagesDay2014 A-4 XPages with jQueryMobile BADプラクティスガイド
XPagesDay2014 A-4 XPages with jQueryMobile BADプラクティスガイド
アプリコンテスト
アプリコンテスト
GWOの使い方~非同期タグVer~
GWOの使い方~非同期タグVer~
Try Jetpack
Try Jetpack
最高のツイッタークライアントを求めて
最高のツイッタークライアントを求めて
Form libraries
Form libraries
Inside Movable Type
Inside Movable Type
「こんなサイトをこんなテーマ構成で作ってみました」Basercms 勉強会vol6
「こんなサイトをこんなテーマ構成で作ってみました」Basercms 勉強会vol6
EC-CUBEプラグイン講義
EC-CUBEプラグイン講義
a-sap06「カスタムフィールドを使いこなす」
a-sap06「カスタムフィールドを使いこなす」
Zend Frameworkで始める携帯サイト
Zend Frameworkで始める携帯サイト
Plus de Yusuke Goto
RUM と STM で実現する動画視聴における信頼性エンジニアリング
RUM と STM で実現する動画視聴における信頼性エンジニアリング
Yusuke Goto
Streaming Reliability Engineering
Streaming Reliability Engineering
Yusuke Goto
2021 年春 ABEMA が Internet Explorer 11 の サポートを終了
2021 年春 ABEMA が Internet Explorer 11 の サポートを終了
Yusuke Goto
より高品質なメディアサービスを目指す ABEMA の技術進化
より高品質なメディアサービスを目指す ABEMA の技術進化
Yusuke Goto
conte - ABEMA's Design System
conte - ABEMA's Design System
Yusuke Goto
ABEMA を次のフェーズへ進化させる技術への取り組み
ABEMA を次のフェーズへ進化させる技術への取り組み
Yusuke Goto
ABEMA の視聴品質向上戦術
ABEMA の視聴品質向上戦術
Yusuke Goto
Taipei Video Tech #5 talk : A Japanese Way to Maintain Constant Quality on St...
Taipei Video Tech #5 talk : A Japanese Way to Maintain Constant Quality on St...
Yusuke Goto
2019 年後半 海外動画技術動向
2019 年後半 海外動画技術動向
Yusuke Goto
A Japanese Way to Maintain Constant Quality on Streaming Chaotically Supplied...
A Japanese Way to Maintain Constant Quality on Streaming Chaotically Supplied...
Yusuke Goto
AbemaTV の課題と Demuxed 2019
AbemaTV の課題と Demuxed 2019
Yusuke Goto
Clarity 2019 で デザインシステムの課題は人なんだと痛感した話
Clarity 2019 で デザインシステムの課題は人なんだと痛感した話
Yusuke Goto
AbemaTV が対峙する技術的課題と開発の現場
AbemaTV が対峙する技術的課題と開発の現場
Yusuke Goto
Nab Show 2019 報告会 - ATSC 3.0 / MOS / Machine Learning / 映像合成技術 編
Nab Show 2019 報告会 - ATSC 3.0 / MOS / Machine Learning / 映像合成技術 編
Yusuke Goto
AbemaTV プロダクトデザイン 2.0
AbemaTV プロダクトデザイン 2.0
Yusuke Goto
Story-Assured Design で開発チーム全員でデザインする
Story-Assured Design で開発チーム全員でデザインする
Yusuke Goto
KPI から生まれるアクセシビリティ
KPI から生まれるアクセシビリティ
Yusuke Goto
Atomic Design という名のデザイン整理術
Atomic Design という名のデザイン整理術
Yusuke Goto
既存のフローからアップデートするアジャイル・デザインフロー
既存のフローからアップデートするアジャイル・デザインフロー
Yusuke Goto
UI 開発をアジャイルに行うための Atomic Design
UI 開発をアジャイルに行うための Atomic Design
Yusuke Goto
Plus de Yusuke Goto
(20)
RUM と STM で実現する動画視聴における信頼性エンジニアリング
RUM と STM で実現する動画視聴における信頼性エンジニアリング
Streaming Reliability Engineering
Streaming Reliability Engineering
2021 年春 ABEMA が Internet Explorer 11 の サポートを終了
2021 年春 ABEMA が Internet Explorer 11 の サポートを終了
より高品質なメディアサービスを目指す ABEMA の技術進化
より高品質なメディアサービスを目指す ABEMA の技術進化
conte - ABEMA's Design System
conte - ABEMA's Design System
ABEMA を次のフェーズへ進化させる技術への取り組み
ABEMA を次のフェーズへ進化させる技術への取り組み
ABEMA の視聴品質向上戦術
ABEMA の視聴品質向上戦術
Taipei Video Tech #5 talk : A Japanese Way to Maintain Constant Quality on St...
Taipei Video Tech #5 talk : A Japanese Way to Maintain Constant Quality on St...
2019 年後半 海外動画技術動向
2019 年後半 海外動画技術動向
A Japanese Way to Maintain Constant Quality on Streaming Chaotically Supplied...
A Japanese Way to Maintain Constant Quality on Streaming Chaotically Supplied...
AbemaTV の課題と Demuxed 2019
AbemaTV の課題と Demuxed 2019
Clarity 2019 で デザインシステムの課題は人なんだと痛感した話
Clarity 2019 で デザインシステムの課題は人なんだと痛感した話
AbemaTV が対峙する技術的課題と開発の現場
AbemaTV が対峙する技術的課題と開発の現場
Nab Show 2019 報告会 - ATSC 3.0 / MOS / Machine Learning / 映像合成技術 編
Nab Show 2019 報告会 - ATSC 3.0 / MOS / Machine Learning / 映像合成技術 編
AbemaTV プロダクトデザイン 2.0
AbemaTV プロダクトデザイン 2.0
Story-Assured Design で開発チーム全員でデザインする
Story-Assured Design で開発チーム全員でデザインする
KPI から生まれるアクセシビリティ
KPI から生まれるアクセシビリティ
Atomic Design という名のデザイン整理術
Atomic Design という名のデザイン整理術
既存のフローからアップデートするアジャイル・デザインフロー
既存のフローからアップデートするアジャイル・デザインフロー
UI 開発をアジャイルに行うための Atomic Design
UI 開発をアジャイルに行うための Atomic Design
Dernier
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
atsushi061452
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Toru Tamaki
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Toru Tamaki
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
WSO2
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
sn679259
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Dernier
(10)
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Componentization with Gilgamesh
1.
アメーバ事業本部 フロントエンドディベロッパー 五藤 佑典 Componentization with
Gilgamesh - Frontrend Conference Final 2015.02.21 -
2.
@ygoto3_ ygoto3.com
3.
UIコンポーネント
4.
最近は選択肢が多いです。(迷います)
5.
コンポーネントを揃えて UIのコードを綺麗にしたい
6.
angular.module(‘demo’).directive( ‘postForm’, function () { return
{ restrict: ‘E’, templateUrl: ‘./template.html’, link: function () {} }; } );
7.
<post-form /> stockimages /
FreeDigitalPhotos.net
8.
<body>" <global-header />" <key-visual />" <post-form
/>" </body>
9.
10.
理想
11.
でも現実は…
12.
このページだけラベル変えたい。
13.
👍
14.
<post-form" label=“まずは試してみる” />
15.
これ、このタイミングは、 あんまり主張してほしくないなー
16.
👍
17.
<post-form" label=“最初の投稿” size=“small”" />
18.
数字が下がってる。明日イベント打ちたい! あそこで使ってるアレ、アレと同じで 大丈夫なんで、ちょっとテイスト変えて 明日までにお願いしますー
19.
👍
20.
<post-form" label=“最初の投稿” size=“small”" skin=“dark”" />
21.
………………………………… …………………… ……………………………
22.
👍
23.
<post-form" label=“最初の投稿” size=“small”" skin=“dark”" is-followed=“true”" stars=“12”" limit=“1000”" …" …" />
24.
stockimages / FreeDigitalPhotos.net
25.
最初は綺麗だった…
26.
汎用性は必要
27.
どこまで必要かは 予測が難しい
28.
Gilgamesh to the Rescue
29.
Gilgamesh to the Rescue https://github.com/sskyy/Gilgamesh
30.
Gilgamesh JavaScript フレームワークを拡張するライブラリ集 • テンプレート拡張ライブラリ •
データソースライブラリ • もっと増える?
31.
Gilgamesh JavaScript フレームワークを拡張するライブラリ集 • テンプレート拡張ライブラリ •
データソースライブラリ • もっと増える?
32.
予期できなかった必要な汎用性を 復活してくれるライブラリ
33.
サポート対象 サポート済 サポート予定 サポート予定
34.
Gilgamesh で コンポーネント作成(w/ Angular)
35.
directive component
36.
angular.module(‘demo’).directive( ‘postForm’, function () { return
{ templateUrl: ‘./template.html’, link: function () {} }; } );
37.
angular.module(‘demo’).directive( ‘postForm’, function () { return
{ templateUrl: ‘./template.html’, link: function () {} }; } );
38.
angular.module(‘demo’).component( ‘postForm’, function () { return
{ templateUrl: ‘./template.html’, link: function () {} }; } );
39.
<div post-form></div>
40.
<div class="well">" <form class="form-horizontal">" <fieldset
class="">" <legend>Post Form Component</legend>" <div class="form-group">" <label for="user" class="control-label col-xs-2">名前:</label>" <div class="col-xs-10">" <input type="text" class="form-control" ng-model="user.name" placeholder="名前" />" </div>" </div>" <div class="form-group">" <label for="E-mail" class="control-label col-xs-2">Eメール:</label>" <div class="col-xs-10">" <input type="text" class="form-control" ng-model="user.email" placeholder="Eメール" />" <div class="checkbox">" <label><input type="checkbox">購読する</label>" </div>" </div>" </div>" <div class="form-group">" <div class="col-xs-offset-2 col-xs-2">" <button class="btn btn-primary btn-block" ng-click="user.save()" gm-role="save">登録</button>" </div>" <div class="col-xs-2">" <button class="btn btn-block" ng-click="user.cancel()" gm-role="cancel">中止</button>" </div>" </div>" </fieldset>" </form>" </div>" <div post-form></div> template.html
41.
ラベルと色が弱いな。。 ここだけはボタンを強調したい!
42.
<div class="well">" <form class="form-horizontal">" <fieldset
class="">" <legend>Post Form Component</legend>" <div class="form-group">" <label for="user" class="control-label col-xs-2">名前:</label>" <div class="col-xs-10">" <input type="text" class="form-control" ng-model="user.name" placeholder="名前" />" </div>" </div>" <div class="form-group">" <label for="E-mail" class="control-label col-xs-2">Eメール:</label>" <div class="col-xs-10">" <input type="text" class="form-control" ng-model="user.email" placeholder="Eメール" />" <div class="checkbox">" <label><input type="checkbox">購読する</label>" </div>" </div>" </div>" <div class="form-group">" <div class="col-xs-offset-2 col-xs-2">" <button class="btn btn-primary btn-block" ng-click="user.save()" gm-role="save">登録</button>" </div>" <div class="col-xs-2">" <button class="btn btn-block" ng-click="user.cancel()" gm-role="cancel">中止</button>" </div>" </div>" </fieldset>" </form>" </div>" <div post-form></div> template.html
43.
<div class="well">" <form class="form-horizontal">" <fieldset
class="">" <legend>Post Form Component</legend>" <div class="form-group">" <label for="user" class="control-label col-xs-2">名前:</label>" <div class="col-xs-10">" <input type="text" class="form-control" ng-model="user.name" placeholder="名前" />" </div>" </div>" <div class="form-group">" <label for="E-mail" class="control-label col-xs-2">Eメール:</label>" <div class="col-xs-10">" <input type="text" class="form-control" ng-model="user.email" placeholder="Eメール" />" <div class="checkbox">" <label><input type="checkbox">購読する</label>" </div>" </div>" </div>" <div class="form-group">" <div class="col-xs-offset-2 col-xs-2">" <button class="btn btn-primary btn-block" ng-click="user.save()" gm-role="save">登録</button>" </div>" <div class="col-xs-2">" <button class="btn btn-block" ng-click="user.cancel()" gm-role="cancel">中止</button>" </div>" </div>" </fieldset>" </form>" </div>" <div post-form></div> template.html <div class="col-xs-2">" <button class="btn btn-block" ng-click=“user.cancel()"" gm-role="cancel">中止</button>" </div>
44.
<div class="well">" <form class="form-horizontal">" <fieldset
class="">" <legend>Post Form Component</legend>" <div class="form-group">" <label for="user" class="control-label col-xs-2">名前:</label>" <div class="col-xs-10">" <input type="text" class="form-control" ng-model="user.name" placeholder="名前" />" </div>" </div>" <div class="form-group">" <label for="E-mail" class="control-label col-xs-2">Eメール:</label>" <div class="col-xs-10">" <input type="text" class="form-control" ng-model="user.email" placeholder="Eメール" />" <div class="checkbox">" <label><input type="checkbox">購読する</label>" </div>" </div>" </div>" <div class="form-group">" <div class="col-xs-offset-2 col-xs-2">" <button class="btn btn-primary btn-block" ng-click="user.save()" gm-role="save">登録</button>" </div>" <div class="col-xs-2">" <button class="btn btn-block" ng-click="user.cancel()" gm-role="cancel">中止</button>" </div>" </div>" </fieldset>" </form>" </div>" <div post-form></div> template.html <div class="col-xs-2">" <button class="btn btn-block" ng-click=“user.cancel()"" gm-role="cancel">中止</button>" </div>
45.
<div post-form></div>
46.
<div post-form gm-tpl-partial>" <button
class="btn btn-danger btn-block" ng-click=“user.cancel()"" gm-role="cancel">解除</button>" </div>
47.
<div post-form gm-tpl-partial>" <button
class="btn btn-danger btn-block" ng-click=“user.cancel()"" gm-role="cancel">解除</button>" </div>
48.
ここはユーザーにできるだけ登録させたい。 中止ボタンは見せたくない。
49.
<div class="well">" <form class="form-horizontal">" <fieldset
class="">" <legend>Post Form Component</legend>" <div class="form-group">" <label for="user" class="control-label col-xs-2">名前:</label>" <div class="col-xs-10">" <input type="text" class="form-control" ng-model="user.name" placeholder="名前" />" </div>" </div>" <div class="form-group">" <label for="E-mail" class="control-label col-xs-2">Eメール:</label>" <div class="col-xs-10">" <input type="text" class="form-control" ng-model="user.email" placeholder="Eメール" />" <div class="checkbox">" <label><input type="checkbox">購読する</label>" </div>" </div>" </div>" <div class="form-group">" <div class="col-xs-offset-2 col-xs-2">" <button class="btn btn-primary btn-block" ng-click="user.save()" gm-role="save">登録</button>" </div>" <div class="col-xs-2">" <button class="btn btn-block" ng-click="user.cancel()" gm-role="cancel">中止</button>" </div>" </div>" </fieldset>" </form>" </div>" <post-form /> template.html <div class="col-xs-2">" <button class="btn btn-block" ng-click=“user.cancel()"" gm-role="cancel">中止</button>" </div>
50.
<div post-form></div>
51.
<div post-form gm-tpl-exclude=“cancel”></div>
52.
思いきって中止ボタンをコンポーネントの 外に出して差別化して目立たせたい。
53.
<button class=“btn btn-danger
btn-block”" gm-import=“postForm”>" <div post-form id=“postForm”></div> 通常の DOM 構造では Scope 外となる 場所にもボタンを配置できる
54.
通常の DOM 構造では
Scope 外となる 場所にもボタンを配置できる <button class=“btn btn-danger btn-block”" gm-import=“postForm”" ng-click=“cancel()”>" <div post-form id=“postForm”></div> import 元コンポーネントの scope を参照できる。
55.
コンポーネントの拡張
56.
angular.module(‘demo’).component( ‘postFormSubscribe’, function () { return
{ extend: ‘postForm’, templateUrl: ‘./template.html’, link: function (iScope) { iScope.user.subscription = true; } }; } );
57.
<div post-form-subscribe></div> postForm の
link で設定された 機能も継承されている。
58.
そのほかにも機能が多々
59.
触ってみて • コンポーネントの再利用性を後から高めるための便利な機能が追加できる • ドキュメントの不備が多い •
バグにいっぱいあたる • パフォーマンス? • プロダクトではまだ使えない けど… コンポーネント・ベース開発の ヒントも多いのでゆるく追ってみたい
60.
Reference • Gilgamesh http://sskyy.github.io/Gilgamesh/ • Gilgamesh:
bring Angular to the next level http://www.reddit.com/r/programming/comments/2s5exu/ gilgamesh_bring_angular_to_the_next_level/ • Bootswatch: Free themes for Bootstrap http://bootswatch.com/ • ECOSAVE BOOTSTRAP ENVIRONMENT TEMPLATE http://www.binarytheme.com/ecosave-bootstrap-environment-template/
61.
ありがとうございました
Télécharger maintenant