Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
AngularJS (1.x) いまさら触ってみた
Search
Takashi Kanemoto
June 20, 2015
Programming
1k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AngularJS (1.x) いまさら触ってみた
Symfony Meetup #4 LT 資料
https://symfony.doorkeeper.jp/events/26456
Takashi Kanemoto
June 20, 2015
More Decks by Takashi Kanemoto
See All by Takashi Kanemoto
API Platformを活用したPHPによる本格的なWeb API開発 / api-platform-book-intro
ttskch
2
320
30分でDoctrineの仕組みと使い方を完全にマスターする / phpconkagawa 2025 Doctrine
ttskch
5
1.6k
いりゃあせ、PHPカンファレンス名古屋2025 / Welcome to PHP Conference Nagoya 2025
ttskch
1
610
PHPとAPI Platformで作る本格的なWeb APIアプリケーション(入門編) / phpcon 2024 Intro to API Platform
ttskch
0
1.4k
今年書いた技術記事で伸びたやつの自慢と自分の中では力作なのにさっぱり伸びなかったやつの供養 / My Tech Articles 2024
ttskch
2
240
FigmaとPHPで作る1ミリたりとも表示崩れしない最強の帳票印刷ソリューション
ttskch
48
45k
データベース/SQL超入門!完全初心者向けに世界一分かりやすく解説します
ttskch
2
8.7k
Symfony UX Autocompleteとかいう 顧客が本当に必要だったもの
ttskch
0
2.4k
就活生あるいは新人エンジニアさんへのお節介なアドバイス
ttskch
0
1.7k
Other Decks in Programming
See All in Programming
SREの越境 / SRE Collaboration
y0hgi
2
210
20260914 AIエージェント時代のPlatform Engineering LLM基盤とプロダクトの責務境界線
kanfab1
7
2k
モデルのリファクタリングが難しいと思ったら、そもそも複雑だったのはビジネス仕様だった ? / is-the-business-domain-the-real-complexity
hatsu38
0
300
C#の現在地 進化の歴史と、AI時代の.NET Everywhere
neuecc
4
2k
数年滞っていたダークモード対応をおよそ2週間で完了させる
chigichan24
0
710
Intent as Code
shoppingjaws
6
1k
新卒PdEのリアル
ryu1013
1
500
手動確認はもう限界 〜XCUITestでCustom URL Schemeの遷移を起動種別ごとに自動テストする〜 / Testing Custom URL Schemes with XCUITest
otouto
0
290
マイコン向けの軽量Ruby「PicoRuby」で各種デバイスを制御するネイティブアプリの実現手法
bash0c7
0
410
『寄り添うラジオ』をAIで作る 体験価値から逆算した、会話しないUXと品質設計
theoriatec2024
3
180
AGENTS.md Is Not Enough:Build Skills, Don't Download Them
lx_t
0
120
LL言語やWebフレームワークのPostgreSQL対応 〜DBの機能がユーザーに届くまで〜
kentaroutakeda
1
150
Featured
See All Featured
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
390
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.8k
Facilitating Awesome Meetings
lara
57
7.1k
How Software Deployment tools have changed in the past 20 years
geshan
1
34k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Are puppies a ranking factor?
jonoalderson
2
3.9k
The Pragmatic Product Professional
lauravandoore
37
7.4k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
890
The Language of Interfaces
destraynor
162
27k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Transcript
AngularJS (1.x) ͍·͞Β৮ͬͯΈͨ #symfony_meetup 2015.06.20 @qckanemoto
• ໊ݹ͔Βདྷ·ͨ͠ • (ג)ΧϧςοτίϛϡχέʔγϣϯζCTO • PHPྺ3 • Symfonyྺ1ʢ͙Β͍ROMઐʣ @qckanemoto
Χϧςοτίϛϡχέʔγϣϯζ • PHPerืूதʂ • ໊ݹʢϦϞʔτՄʣ • @hidenorigoto͞Μ͕ؒೖΓ͠·ͨ͠ • ϦεςΟϯάࠂӡ༻πʔϧʮLisketʯ
ΤϯδχΞͷಇ͖͢͞େࣄʹͯ͠·͢ Χϧςοτίϛϡχέʔγϣϯζ
SNS͔ϝʔϧͰ͓ؾܰʹ͝࿈བྷ͍ͩ͘͞✨ Χϧςοτίϛϡχέʔγϣϯζ
ຊ
Symfony2 + AngularJS ձࣾͷϓϩμΫτͷߏ
ձࣾͷϓϩμΫτͷߏ Symfony2 + AngularJS
ձࣾͷϓϩμΫτͷߏ ʊਓਓਓਓਓਓਓਓʊ ʼɹ AngularJS ɹʻ ʼɹɹɹɹɹɹɹɹʻ ʉY^Y^Y^Y^Y^Y^Yʉ
ձࣾͷϓϩμΫτͷߏ ʊਓਓਓਓਓਓਓਓʊ ʼɹ AngularJS ɹʻ ʼɹશવ͔ΒΜɹʻ ʉY^Y^Y^Y^Y^Y^Yʉ
ࣄʹࢧো͕͋ͬͨͷͰ ͜͜3͙Β͍৮ͬͯΈ·ͨ͠
ࣄ࢝Ί • ͱΓ͋͑ͣͳͷͰਂ͘ߟ͑ͣʹYeomanͰ࡞Δ
ࣄ࢝Ί
ࣄ࢝Ί
͓͓ʙ
Step1. σΟϨΫτϦߏݟΔ
None
શϏϡʔڞ௨ͷhtmlʢϨΠΞτతͳʣ
શϏϡʔڞ௨ͷhtmlʢϨΠΞτతͳʣ jsϑΝΠϧશ෦͜͜
શϏϡʔڞ௨ͷhtmlʢϨΠΞτతͳʣ jsϑΝΠϧશ෦͜͜ ֤Ϗϡʔͷhtml
ίϯτϩʔϥ Ϗϡʔ
ϧʔςΟϯάઃఆͱ͔configܥ
ϧʔςΟϯά͜ΜͳϊϦ
Ѳ
Step2. ͱΓ͋͑ͣը໘ॻ͘ ʢνϟοτπʔϧΈ͍ͨͳͷΛఆʣ
ίϯτϩʔϥ
ίϯτϩʔϥ Ҿʹॻ͚ͩ͘Ͱ αʔϏεΛΠϯδΣΫτՄೳ
ίϯτϩʔϥ $scopeαʔϏεܦ༝Ͱ ίϯτϩʔϥɾϏϡʔؒͰ มʢϞσϧʣΛڞ༗
Ϗϡʔ
Ϗϡʔ $scope.comment Λ {{ comment }} Ͱग़ྗ
Ϗϡʔ Α͋͘Δײ͡ͷϑΟϧλ ʢࣗ࡞Մೳʣ
ग़ྗ݁Ռ
͓͓ʙ
Step3. ฤूՄೳʹͯ͠ΈΔ
ίϯτϩʔϥ ϞσϧʹฤूதϑϥάΛՃ
Ϗϡʔ
Ϗϡʔ ฤूϑϥάΛΓସ͑ΔϘλϯΛՃ
Ϗϡʔ ΫϦοΫ͞ΕͨΒ comment.isEditing Λస
Ϗϡʔ ฤूϑϥάͷʹԠͯ͡ දࣔͤ͞ΔཁૉΛΓସ͑
Ϗϡʔ ฤूதͷͱ͖Ӆ͢
Ϗϡʔ ฤूதͷͱ͖ʹݟͤΔ
Ϗϡʔ comment.content ʹ ೖྗΛඥ͚Δ
ग़ྗ݁Ռ
ग़ྗ݁Ռ ΫϦοΫͯ͠ฤूதʹ
ग़ྗ݁Ռ ฤू
ग़ྗ݁Ռ ΫϦοΫͯ͠ฤूऴྃ
͓͓ʙ
Step4. ࠶ར༻ͨ͘͠ͳΔ
͜ͷ࣌Ͱࢥͬͨ͜ͱ νϟοτπʔϧͩͬͨΒ ͜ͷฤूՄೳͳίϝϯτύωϧ ৭Μͳը໘Ͱ͍ͦ͏
Ϗϡʔ෦ͷ࠶ར༻ • ϏϡʔͷҰ෦ΛʮσΟϨΫςΟϒʯͱͯ͠෦Խ • ෳͷϏϡʔ͔ΒσΟϨΫςΟϒΛ࠶ར༻ • ng-click, ng-show, ng-hide, ng-model
AngularJSΈࠐΈͷσΟϨΫςΟϒ • ཁૉΛؙ͝ͱ෦Խͨ͠ΓɺཁૉͷػೳΛ֦ு ͢ΔͨΊͷଐੑ͚ͩΛ෦Խͨ͠Γ৭ʑͰ͖Δ
σΟϨΫςΟϒԽͯ͠ΈΔ ɿjsϑΝΠϧΛՃͨ͠߹index.html͔Βϩʔυ͢ΔͷΛΕͳ͍Α͏ʹ
σΟϨΫςΟϒԽͯ͠ΈΔ σΟϨΫςΟϒ໊ camelCase Ͱ͚Δ Ϗϡʔ͔Β kebab-case Ͱ͏
σΟϨΫςΟϒԽͯ͠ΈΔ ‘E’ ཁૉʢElementʣ ‘A’ ଐੑʢAttributeʣ ‘EA’ ͱ͔Δͱ྆ํͱͯ͑͠Δ
σΟϨΫςΟϒԽͯ͠ΈΔ σΟϨΫςΟϒʹHTMLදݱΛ ͍࣋ͨͤͨ߹ςϯϓϨʔτΛࢦఆͰ͖Δ ʢػೳͷΈͰHTMLදݱΛ࣋ͨͳ͍ͷՄʣ
σΟϨΫςΟϒԽͯ͠ΈΔ σΟϨΫςΟϒΛͬͨཁૉࣗମΛ ςϯϓϨʔτͰஔ͖͑Δ߹ true ʹ
σΟϨΫςΟϒԽͯ͠ΈΔ σΟϨΫςΟϒͷ࣋ͭಠࣗείʔϓͱ ར༻ଆͷϏϡʔͷείʔϓͷؔ࿈͚ઃఆʢޙड़ʣ
σΟϨΫςΟϒͷςϯϓϨʔτ
Ϗϡʔ
Ϗϡʔ ϏϡʔଆͰ σΟϨΫςΟϒ໊ kebab-case
Ϗϡʔ σΟϨΫςΟϒείʔϓͷ comment ͱ͍͏Ϟσϧʹ ࣗείʔϓͷ comment ϞσϧΛόΠϯυ
ग़ྗ݁Ռ ͪΌΜͱಉ͡Α͏ʹಈ͘Ϗϡʔ͕ग़ͨ
…
ͪΐͬͱΉ͍ͣΜ͚
σΟϨΫςΟϒ͕࠷ॳͷؔ • 2͙Β͍ͰσΟϨΫςΟϒ࡞Γͨ͘ͳͬͨ • είʔϓͷόΠϯσΟϯά͕Α͔͘Βͳ͘ ͯͪΐͬͱۤ͠Μͩ • ͦΕΛΓӽ͑ͨΒָʹ৭ʑͰ͖ΔΑ͏ʹͳ ͬͨ
είʔϓͷόΠϯσΟϯά • ‘=‘ ͱ ‘@’ ͱ ‘&’ ͷ3छྨ͕͋Δ • ‘=‘
ํόΠϯσΟϯά • ར༻ଆͱϞσϧΛڞ༗ • σΟϨΫςΟϒͰϞσϧΛॻ͖͑ͨΒར༻ଆͰมΘΔ • ‘@‘ ར༻ଆ͔Β੩తͳΛͨͩΒ͏͚ͩ • ར༻ଆͰ directive=“{{ model }}” Έ͍ͨʹධՁޙͷΛ͢ • ‘&’ ࠷ॳ͋·ΓΘͳ͍ͷͰͦͷ͏ͪάά͍ͬͯͩ͘͞
σΟϨΫςΟϒԞ͕ਂ͍ • ଞʹ৭ʑͰ͖ͯԞ͕ਂ͍ͬΆ͍Ͱ͢ • Ͱॳาతͳ͍ํ͚ͩͳΒׂΓͱ͙͢׳Ε·͢ • ҎԼͷهࣄ͕ࢀߟʹͳΓ·ͨ͠ • “AngularJSͷDirectiveΛཧղ͢Δ.” http://qiita.com/Quramy/items/
dd4e7d2693c32d92048c
͍ͭͰʹαʔϏεͷઆ໌
ϩδοΫͷ࠶ར༻ • ϩδοΫΛ࠶ར༻͍ͨ͠߹ɺσΟϨΫςΟ ϒͰͳ͘αʔϏεΛ࡞Δ • $scopeͳͲͷΈࠐΈͷαʔϏεͱಉ͡Α͏ ʹɺίϯτϩʔϥσΟϨΫςΟϒɺଞͷαʔ ϏεͳͲʹ؆୯ʹΠϯδΣΫτՄೳ
αʔϏεͷྫʢఆٛଆʣ
αʔϏεͷྫʢఆٛଆʣ ୯ҰػೳͷαʔϏεͳΒ ΫϩʔδϟΛ return ͯ͠OK
αʔϏεͷྫʢར༻ଆʣ
αʔϏεͷྫʢར༻ଆʣ ΈࠐΈαʔϏεͱಉ͡Α͏ʹ Ҿʹ͚ͩ͢ͰOK
αʔϏεͷྫʢར༻ଆʣ ͋ͱී௨ʹ͏͚ͩ
ͬͪ͜؆୯ͬΆ͍ʢϗοʣ
Step5. ͦͯ͠આ
υΩϡϝϯτಡΈ·͠ΐ͏ • ࠓυΩϡϝϯτ݁ߏॆ࣮ͯͯ҆͠৺Ͱ͢ • ↓ͷ2ͭΛ͋ͨΕ͍͍͔ͩͨΓ·͢ • https://docs.angularjs.org/api • https://docs.angularjs.org/guide
ग़ల: My Experience With AngularJS - The Super-heroic JavaScript MVW
Framework http://www.bennadel.com/blog/2439-my-experience-with-angularjs-the-super-heroic-javascript-mvw-framework.htm ֶशίετ༻్࣍ୈ
ࣗࠓͨͿΜ “Neat!” ͷͱ͜ͳͷͰ͜ΕҎ্ ਂ͍͠ͳ͍ํ͕ݡ໌ͬΆ͍
·ͱΊ • Α͘σΟεΒΕͯΔ͚Ͳɺ୯७ͳΞϓϦͰ ͏ͳΒΊͬͪΌ؆୯Ͱศར • AngularJS 1.x → Angular2 Ͱ΄΅ผͷϑϨʔ
ϜϫʔΫʹͳͬͯΔΒ͍͠ͷͰࠓ͔ΒΔͳ Β1ܥແࢹͰ͍͍ͱࢥ͍·͢
͓·͚ • Symfony্ͰAngularJSΛಈ͔͍ͨ͠ਓ→ • “Symfony2 meets AngularJS” http://www.slideshare.net/77web/ symfony-33704176 •
Ͱ΄ͱΜͲͷέʔεͰࠞͥΔͳةݥͳͷͰ SymfonyଆREST APIʹప͢Δ͕٢
Thanks ;)