-- ·|­û / µù¥U -- ¡@
¡@±b¸¹¡G
¡@±K½X¡G
¡@ | µù¥U | §Ñ°O±K½X
3/26 ·s®Ñ¨ì¡I 3/19 ·s®Ñ¨ì¡I 3/14 ·s®Ñ¨ì¡I 12/12 ·s®Ñ¨ì¡I
ÁʮѬyµ{¡EQ & A¡E¯¸°È¯d¨¥ª©¡E«ÈªA«H½c
¢x 3ds Max¢x Maya¢x Rhino¢x After Effects¢x SketchUp¢x ZBrush¢x Painter¢x Unity¢x
¢x PhotoShop¢x AutoCad¢x MasterCam¢x SolidWorks¢x Creo¢x UG¢x Revit¢x Nuke¢x
¢x C#¢x C¢x C++¢x Java¢x ¹CÀ¸µ{¦¡¢x Linux¢x ´O¤J¦¡¢x PLC¢x FPGA¢x Matlab¢x
¢x Àb«È¢x ¸ê®Æ®w¢x ·j¯Á¤ÞÀº¢x ¼v¹³³B²z¢x Fluent¢x VR+AR¢x ANSYS¢x ²`«×¾Ç²ß¢x
¢x ³æ´¹¤ù¢x AVR¢x OpenGL¢x Arduino¢x Raspberry Pi¢x ¹q¸ô³]­p¢x Cadence¢x Protel¢x
¢x Hadoop¢x Python¢x Stm32¢x Cortex¢x Labview¢x ¤â¾÷µ{¦¡¢x Android¢x iPhone¢x
¥i¬d®Ñ¦W,§@ªÌ,ISBN,3dwoo®Ñ¸¹
¸Ô²Ó®ÑÄy¤ÀÃþ

Angular °ª¯Å½sµ{(²Ä3ª©)

( ²Åé ¦r)
§@ªÌ¡G[¬ü]¨È·í¡P¥±¹p°Ò(Adam Freeman) µÛ ¸F¤¦ ĶÃþ§O¡G1. -> µ{¦¡³]­p -> ºô¸ô½sµ{ -> AngularJS
ĶªÌ¡G
¥Xª©ªÀ¡G²MµØ¤j¾Ç¥Xª©ªÀAngular °ª¯Å½sµ{(²Ä3ª©) 3dWoo®Ñ¸¹¡G 51403
¸ß°Ý®ÑÄy½Ð»¡¥X¦¹®Ñ¸¹¡I

¡i¦³®w¦s¡j
NT°â»ù¡G 690 ¤¸

¥Xª©¤é¡G6/1/2019
­¶¼Æ¡G530
¥úºÐ¼Æ¡G0
¯¸ªø±ÀÂË¡G
¦L¨ê¡G¶Â¥Õ¦L¨ê»y¨t¡G ( ²Åé ª© )
¥[¤JÁʪ«¨® ¢x¥[¨ì§Úªº³Ì·R
(½Ð¥ýµn¤J·|­û)
ISBN¡G9787302529170
§@ªÌ§Ç¡@|¡@ĶªÌ§Ç¡@|¡@«e¨¥¡@|¡@¤º®e²¤¶¡@|¡@¥Ø¿ý¡@|¡@§Ç
(²Åé®Ñ¤W©Ò­z¤§¤U¸ü³sµ²¯Ó®É¶O¥\, ®¤¤£¾A¥Î¦b¥xÆW, ­YŪªÌ»Ý­n½Ð¦Û¦æ¹Á¸Õ, ®¤¤£«OÃÒ)
§@ªÌ§Ç¡G

ĶªÌ§Ç¡G

«e¨¥¡G


¢i ¢i ¢i
Ķ ªÌ §Ç



¦bWeb¶}µo»â°ì¡A¤@¯ë¨Ï¥ÎHTML§@¬°«eºÝ­¶­±¤¸¯ÀªºÁn©ú¦¡»y¨¥¡A¨Ï¥ÎCSS§Þ³N§@¬°®i¥Ü¼Ë¦¡ªº´y­z»y¨¥¡AJavaScript§@¬°·~°È³B²z¥æ¤¬ªº©R¥O¦¡»y¨¥¡C¦Óºc«Ø«D±`´_ÂøªºWebÀ³¥Î®É¡A¯Âºé¦Ó¦³­­ªºHTML´NÅã±o«D±`¤£¨¬¡AJavaScript¥»¨­¤]·|ÀHµÛ¶µ¥Ø¥N½X¶qªº¿±µÈ¦ÓÅܱoÃø¥HºûÅ@©MºÞ²z¡A¬ãµo¤u´Á©M¦¨¥»¤]·|ÀH¤§Ãø¥H±±¨î¡C¦¹®É¡A¤@¯ë¨Ï¥ÎÃþ®w(¦pjQuery¡BDojoµ¥)©Î®Ø¬[(¦pBackbone¡BEmber©MExtJSµ¥)¨Ó´£¤É¶}µo®Ä²v¡AÁYµu¶µ¥Øªº¤u´Á©M­°§C¦¨¥»¡A¤è«K¦ZÄòªººûÅ@©MºÞ²z¡C
¦ÓAngularJS¤£¶È¬O¤@­Ó²z©À¥ý¶iªº«eºÝ¶}µo®Ø¬[¡A§ó¬O¤@ºØºÝ¹ïºÝªº¸Ñ¨M¤è®×¡A¤w¸g³Q¥Î¤_Googleªº¦h´Ú²£«~¤¤¡CAngularJS¿í±q¬[ºc³]­p¤¤ªºMVC¼Ò¦¡¡A´£­Ò®i²{¡B¼Æ¾Ú©MÅÞ¿è³B²z²Õ¥óªºªQ½¢¦X(Ãþ¦üFlex©MWPF)¡CAngularJS³q¹L«ü¥O§Þ³N¹ï¶Ç²ÎHTML¹ê²{¤F¦ÛµMÂX®i¡A³q¹L½sĶ§Þ³N¹ê²{¤F¼Æ¾Ú¼Ò«¬»P®i²{µø¹ÏªºÂù¦V¦Û°Ê¦P¨B¡A®ø°£¤F«eºÝ¶}µo¤¤ÁcÂøªºDOM¾Þ§@¡C³Ì¦Z³q¹L¼Ò¶ô¤Æ³]­p¸Ñ¨M¤FJS¥N½XºÞ²zºûÅ@©M«ö»Ý¥[¸üªº°ÝÃD¡A´£°ª¤F¼s¤j«eºÝµ{§Ç­û¥H¤Î¦ZºÝµ{§Ç­ûªº¥Í²£®Ä²v¡C¦Ó¥B³oºØ¸Ñ½¢¥»¨­¡A¤]¹ï«eºÝªº¦Û°Ê¤Æ´ú¸Õ§Þ³N´£¨Ñ¤F¨}¦nªº¤ä«ù¡C
AngularJS½Ï¥Í¤_2009¦~¡A¥ÑMisko Hevery ©MAdam Abrons³Ð«Ø¡A¦Z¬°Google©Ò¦¬ÁÊ¡CAngularJS¦³³\¦h¯S©Ê¡A³Ì¬°®Ö¤ßªº¬O¡GMVVM¡B¼Ò¶ô¤Æ¡B¦Û°Ê¤ÆÂù¦V¼Æ¾Ú¸j©w¡B»y¸q¤Æ¼Ðñ¡B¨Ì¿àª`¤Jµ¥¡CAngularJS ¬O±Mªù¬°À³¥Îµ{§Ç³]­pªº HTML¡C
Angular 2.0¬O2014¦~10¤ë22¤é¦bng-Europe·|ij¤Wµo¥¬ªº¡A¸Óª©¥»§¹¥þ­«¼g¤FAngularJS¡C¬°ÁקK¶}µo¤H­ûªº§x´b¡A¶}µo¹Î¶¤«Å¥¬¨C­Ó®Ø¬[³£À³¸Ó¨Ï¥Î³æ¿Wªº³N»y¡A¨ä¤¤¡§AngularJS¡¨«üªº¬Oª©¥»1¡Cxª©¥»©M¨S¦³¡§JS¡¨ªº¡§Angular¡¨«üªº¬Oª©¥»2¤Î§ó°ªª©¥»¡C
Angular 6¤_2018¦~5¤ë4¤éµo¥¬¡C³o¬O¤@­Ó­«­nª©¥»¡A¥¦¹ï©³¼h®Ø¬[ªºÃöª`¸û¤Ö¡A¦Ò¼{§ó¦hªº¬O¤u¨ãÃì¡A¥H¤Î¦p¦ó¨ÏAngular§ó©ö¤_¦b¥¼¨Ó´£°ª®Ä²v¡A¦png update¡Bng add¡BAngular Elements¡BAngular Material + CDK Components¡BAngular Material Starter Components¡BCLI Workspaces¡BLibrary Support¡BTree Shakable Providers¡BAnimations Performance Improvements©MRxJS v6¡C
Angular 7ÅýAngularÅܱo§ó¥X¦â¡A¬°¶¶À³²{¥NÁͶռW¥[¤F¤ñ¯S¹ô«õ±¸¡BµêÀÀºu°Ê¡B©ì©ñµ¥¥\¯à¡C
¡mAngular°ª¯Å½sµ{(²Ä3ª©)¡n¤À¬°¤T­Ó³¡¤À¡A¨C³¡¤À²[»\¤@²Õ¬ÛÃöªº¥DÃD¡C¡mAngular°ª¯Å½sµ{(²Ä3ª©)¡n²Ä¢¹³¡¤À¦^ÅU¤F¤@¨ÇÃöÁä§Þ³Nªº°ò¥»ª¾ÃÑ¡A¥]¬AHTML¡BCSS©MTypeScript¡A¦}®i¥Ü¦p¦óºc«Ø²Ä¤@­ÓAngularÀ³¥Îµ{§Ç¡C²Ä¢º³¡¤À¤¶²ÐAngular¬°ºc«ØÀ³¥Îµ{§Ç´£¨Ñªººc³y¶ô¡A¨Ì¦¸´y­z©Ò¦³³o¨Çºc³y¶ô¡C²`¤J´y­zAngular¥]§tªº«Ü¦h¤º¸m¥\¯à¡A¥H¤ÎÂ×´IªºAngular¦Û©w¸q¿ï¶µ¡C²Ä¢»³¡¤À¤¶²Ð¦p¦ó¨Ï¥Î°ª¯Å¥\¯à¨Ó³Ð«Ø§ó´_Âø¡B¥iÂX®iªºÀ³¥Îµ{§Ç¡Cºt¥Ü¦p¦ó¦bAngularÀ³¥Îµ{§Ç¤¤¶i¦æ²§¨BHTTP½Ð¨D¡A¦p¦ó¨Ï¥ÎURL¸ô¥Ñ¦bÀ³¥Îµ{§Ç¤¤¾É¯è¡A¥H¤Î¦bÀ³¥Îµ{§Çªºª¬ºAµo¥ÍÅܤƮɦp¦ó¨ÏHTML¤¸¯À¨ã¦³°Êµe®ÄªG¡C
¡mAngular°ª¯Å½sµ{(²Ä3ª©)¡n³ôºÙAngular»â°ìªº¨½µ{¸O¦¡µÛ§@¡A²[»\¤FÃö¤_Angularªº´X¥G©Ò¦³¤º®e¡C¡mAngular°ª¯Å½sµ{(²Ä3ª©)¡n¥­¹ê¡B³q«UªºÁ¿¸Ñ¡AÂ×´I¡Bµ¾¹êªº¥Ü¨Ò¡A»¼¶i¡BÄY±Kªº²Õ´¡A¥i¥HÅý·s¤â²@µLÀ£¤O¦aµn°ó¤J«Ç¡A¨³³t§l¨ú·s¤@¥NWebÀ³¥Î¶}µoªººëÅè¡C¹ï¤_¨ã¦³¬ÛÃö¸gÅ窺¥Î¤á¡A¡mAngular°ª¯Å½sµ{(²Ä3ª©)¡n¹ïAngular·§©À©M§Þ³N²Ó¸`ªº¥þ­±­åªR¡A¥H¤Î¤Þ¤H¤J³Ó¡B¤Á¤¤ªÖãvªºÁ¿¸Ñ¡A±NÀ°§UŪªÌ¹ý©³´x´¤³o­Ó®Ø¬[¡A¦b¦Û¤v¾·~§Þ³N­×·Ò¤§¸ô¤W§ó¶i¤@¨B¡C
³o¨½­n·PÁ²MµØ¤j¾Ç¥Xª©ªÀªº½s¿è­Ì¡A¥L­Ì¬°¡mAngular°ª¯Å½sµ{(²Ä3ª©)¡nªºÂ½Ä¶§ë¤J¤F¥¨¤j¼ö±¡¦}¥I¥X¤F«Ü¦h¤ß¦å¡C¨S¦³¥L­ÌªºÀ°§U©M¹ªÀy¡A¡mAngular°ª¯Å½sµ{(²Ä3ª©)¡n¤£¥i¯à¶¶§Q¥I±ê¡C
¹ï¤_³o¥»¸g¨å¤§§@¡AĶªÌ¥»µÛ¡§¸Û´q¸Û®£¡¨ªººA«×¡A¦b½Ķ¹Lµ{¤¤¤O¨D¡§«H¡B¹F¡B¶®¡¨¡A¦ý¬Oų¤_ĶªÌ¤ô¥­¦³­­¡A¿ù»~©M¥¢»~¦b©ÒÃø§K¡A¦p¦³¥ô¦ó·N¨£©M«Øij¡A½Ð¤£§[«ü¥¿¡C
ĶªÌ

¤º®e²¤¶¡G

¥D­n¤º®e:
? ²`¤J²z¸ÑMVC¼Ò¦¡ªº¬[ºc
? ¨Ï¥ÎAngular³Ð«Ø¤º®eÂ×´I¡BÆF°Ê¦hÅܪºWebÀ³¥Î«È¤áºÝ
? ¨Ï¥Îng¤u¨ã³Ð«Ø©Mºc«ØAngular¶µ¥Ø
? ÂX®i©M©w¨îAngular
? ´ú¸ÕAngular¶µ¥Ø

·s¼W¤º®e:
? ®Ú¾ÚAngular 7ªº¯S©Ê©MÅܤưµ¤F¥þ­±²Ó­Pªº­×­q
? ²[»\@angular/cli¡Bng©R¥O¦æ¤u¨ã©Mwebpack
? ¥]§t¥Î¤_²¤Æ²§¨BHTTP½Ð¨DªºHttpClient
? §ó·s¤FºÞ¹D©M¥»¦a¤Æ¤å¥»ªºÅã¥Ü
¥Ø¿ý¡G

²Ä¢¹³¡¤ÀAngular°ò¦ª¾ÃÑ
²Ä1³¹·Ç³Æ¤u§@3
1.1»Ý­n¤F¸Ñ¤°¤\3
1.2¥»®Ñµ²ºc3
1.2.1²Ä¢¹³¡¤À¡GAngular°ò¦ª¾ÃÑ3
1.2.2²Ä¢º³¡¤À¡GAngular¸Ô¸Ñ3
1.2.3²Ä¢»³¡¤À¡GAngular°ª¯Å¥\¯à3
1.3¤j¶q¥Ü¨Ò4
1.4Àò¨ú¥Ü¨Ò¥N½X5
1.5¦p¦ó·f«Ø¶}µoÀô¹Ò5
1.6Áp¨t§@ªÌ5
1.7¥»³¹¤pµ²5
²Ä2³¹²Ä¤@­ÓAngularÀ³¥Îµ{§Ç7
2.1·Ç³Æ¶}µoÀô¹Ò7
2.1.1¦w¸ËNode.js7
2.1.2¦w¸Ëangular-cli¥]8
2.1.3¦w¸ËGit8
2.1.4¦w¸Ë½s¿è¾¹8
2.1.5¦w¸ËÂsÄý¾¹9
2.2³Ð«Ø¦}·Ç³Æ¶µ¥Ø9
2.2.1³Ð«Ø¶µ¥Ø9
2.2.2²K¥[BootstrapCSS¥]9
2.2.3±Ò°Ê¶}µo¤u¨ã10
2.2.4½s¿èHTML¤å¥ó10
2.3¦V¶µ¥Ø¤¤²K¥[Angular¥\¯à12
2.3.1·Ç³ÆHTML¤å¥ó12
2.3.2³Ð«Ø¼Æ¾Ú¼Ò«¬12
2.3.3³Ð«Ø¼ÒªO14
2.3.4·Ç³Æ²Õ¥ó14
2.3.5±NÀ³¥Îµ{§Ç²Õ¦X°_¨Ó16
2.4¦V¥Ü¨ÒÀ³¥Îµ{§Ç¤¤²K¥[¥\¯à17
2.4.1²K¥[«Ý¿ì¨Æ¶µªí®æ17
2.4.2³Ð«ØÂù¦V¼Æ¾Ú¸j©w19
2.4.3²K¥[«Ý¿ì¨Æ¶µ21
2.5¥»³¹¤pµ²23
²Ä3³¹±NAngular©ñ¦b¤W¤U¤å¤¤25
3.1²z¸ÑAngularªº±j¶µ25
3.1.1©¹ªð¦¡À³¥Îµ{§Ç©M³æ­¶¦¡À³¥Îµ{§Ç25
3.1.2Angular»PjQueryªº¤ñ¸û26
3.2¤ñ¸ûAngular¡BReact©MVue.js27
3.3²z¸ÑMVC¼Ò¦¡27
3.3.1²z¸Ñ¼Ò«¬28
3.3.2²z¸Ñ±±¨î¾¹/²Õ¥ó29
3.3.3²z¸Ñµø¹Ï/¼ÒªO30
3.4²z¸ÑRESTfulªA°È30
3.5±`¨£ªº³]­p¯Ê³´31
3.5.1±NÅÞ¿è©ñ¿ù¦a¤è31
3.5.2¼Æ¾Ú¦sÀxªö¥Îªº¼Æ¾Ú®æ¦¡32
3.5.3¨¬°÷ªºª¾ÃѨ¬¥H¨î³y³Â·Ð32
3.6¥»³¹¤pµ²32
²Ä4³¹HTML©MCSS¤Jªù33
4.1·Ç³Æ¥Ü¨Ò¶µ¥Ø33
4.2²z¸ÑHTML34
4.2.1²z¸ÑªÅ¤¸¯À35
4.2.2²z¸ÑÄÝ©Ê35
4.2.3À³¥ÎµL­ÈÄÝ©Ê35
4.2.4¦bÄݩʤ¤¤Þ¥Î¦r­±¶q35
4.2.5²z¸Ñ¤¸¯À¤º®e36
4.2.6²z¸Ñ¤åÀɵ²ºc36
4.3²z¸ÑBootstrap37
4.3.1À³¥Î°ò¥»ªºBootstrapÃþ37
4.3.2¨Ï¥ÎBootstrap¼Ë¦¡¤Æªí®æ40
4.3.3¨Ï¥ÎBootstrap³Ð«Øªí³æ41
4.3.4¨Ï¥ÎBootstrap³Ð«Øºô®æ42
4.4¥»³¹¤pµ²46
²Ä5³¹JavaScript»PTypeScript¡G²Ä1³¡¤À47
5.1·Ç³Æ¥Ü¨Ò¶µ¥Ø48
5.2¨Ï¥Î»y¥y49
5.3©w¸q©M¨Ï¥Î¨ç¼Æ50
5.3.1©w¸q±a°Ñ¼Æªº¨ç¼Æ51
5.3.2©w¸qªð¦^µ²ªGªº¨ç¼Æ52
5.3.3±N¨ç¼Æ¥Î§@¨ä¥L¨ç¼Æªº¹ê°Ñ52
5.4¨Ï¥ÎÅܶq©MÃþ«¬53
5.4.1¨Ï¥ÎÅܶq³¬¥]54
5.4.2¨Ï¥Î°ò¥»¼Æ¾ÚÃþ«¬54
5.5¨Ï¥ÎJavaScript¾Þ§@²Å56
5.5.1¨Ï¥Î±ø¥ó»y¥y56
5.5.2¬Ûµ¥¾Þ§@²Å©MùÚµ¥¾Þ§@²Å57
5.5.3Å㦡Ãþ«¬Âà´«58
5.6³B²z¼Æ²Õ59
5.6.1¨Ï¥Î¼Æ²Õ¦r­±¶q59
5.6.2¼Æ²Õ¤º®eªºÅª¨ú©M­×§ï59
5.6.3¹M¾ú¼Æ²Õ¤º®e60
5.6.4spread¾Þ§@²Å60
5.6.5¨Ï¥Î¤º¸m¼Æ²Õ¤èªk61
5.7¥»³¹¤pµ²62
²Ä6³¹JavaScript»PTypeScript¡G²Ä2³¡¤À63
6.1·Ç³Æ¥Ü¨Ò¶µ¥Ø63
6.2¨Ï¥Î¹ï¶H63
6.2.1¨Ï¥Î¹ï¶H¦r­±¶q64
6.2.2±N¨ç¼Æ¥Î§@¤èªk64
6.2.3©w¸qÃþ65
6.3³B²zJavaScript¼Ò¶ô67
6.4¦³¥ÎªºTypeScript¯S©Ê70
6.4.1¨Ï¥ÎÃþ«¬ª`¸Ñ70
6.4.2¨Ï¥Î¤¸²Õ74
6.4.3¨Ï¥Î¥i¯Á¤ÞÃþ«¬74
6.4.4¨Ï¥Î³X°Ý­×¹¢²Å74
6.5¥»³¹¤pµ²75
²Ä7³¹SportsStore¡G¤@­Ó¯u¹êªºÀ³¥Îµ{§Ç77
7.1·Ç³Æ¶µ¥Ø77
7.1.1¦w¸ËÃB¥~ªºNPM³n¥ó¥]77
7.1.2·Ç³ÆRESTfulWebªA°È78
7.1.3·Ç³ÆHTML¤å¥ó80
7.1.4³Ð«Ø¤å¥ó§¨µ²ºc80
7.1.5¹B¦æ¥Ü¨ÒÀ³¥Îµ{§Ç80
7.1.6±Ò°ÊRESTfulWebªA°È81
7.2·Ç³ÆAngular¶µ¥Ø¥\¯à81
7.2.1§ó·s®Ú²Õ¥ó81
7.2.2§ó·s®Ú¼Ò¶ô82
7.2.3Àˬd¤Þ¾É¤å¥ó82
7.3±Ò°Ê¼Æ¾Ú¼Ò«¬83
7.3.1³Ð«Ø¼Ò«¬Ãþ83
7.3.2³Ð«ØµêÀÀ¼Æ¾Ú·½83
7.3.3³Ð«Ø¼Ò«¬¦sÀx®w84
7.3.4³Ð«Ø¥\¯à¼Ò¶ô85
7.4±Ò°Ê°Ó©±85
7.4.1³Ð«ØStore²Õ¥ó©M¼ÒªO85
7.4.2³Ð«Ø°Ó©±¥\¯à¼Ò¶ô86
7.4.3§ó·s®Ú²Õ¥ó©M®Ú¼Ò¶ô87
7.5²K¥[°Ó©±¥\¯à¡G²£«~¸Ô±¡88
7.5.1Åã¥Ü²£«~¸Ô±¡88
7.5.2²K¥[Ãþ§O¿ï¾Ü89
7.5.3²K¥[²£«~¤À­¶¥\¯à90
7.5.4³Ð«Ø¦Û©w¸q«ü¥O92
7.6¥»³¹¤pµ²95
²Ä8³¹SportsStore¡G­q³æ©Mµ²½ã97
8.1·Ç³Æ¥Ü¨ÒÀ³¥Îµ{§Ç97
8.2³Ð«ØÁʪ«¨®97
8.2.1³Ð«ØÁʪ«¨®¼Ò«¬97
8.2.2³Ð«ØÁʪ«¨®·§Äý²Õ¥ó98
8.2.3±NÁʪ«¨®¶°¦¨¨ì°Ó©±¤¤100
8.3²K¥[URL¸ô¥Ñ102
8.3.1³Ð«ØÁʪ«¨®¸Ô±¡©Mµ²½ã²Õ¥ó102
8.3.2³Ð«Ø©MÀ³¥Î¸ô¥Ñ°t¸m103
8.3.3À³¥Îµ{§Ç¾É¯è104
8.3.4¸ô¥Ñ¦u½Ã106
8.4§¹¦¨Áʪ«¨®¸Ô±¡¥\¯à107
8.5³B²z­q³æ109
8.5.1ÂX®i¼Ò«¬109
8.5.2¦¬¶°­q³æ¸Ô±¡111
8.6¨Ï¥ÎRESTfulWebªA°È114
8.7¥»³¹¤pµ²115
²Ä9³¹SportsStore¡GºÞ²z117
9.1·Ç³Æ¥Ü¨ÒÀ³¥Îµ{§Ç117
9.1.1³Ð«Ø¼Ò¶ô117
9.1.2°t¸mURL¸ô¥Ñ¨t²Î119
9.1.3¾É¯è¨ìºÞ²zURL120
9.2¹ê²{¨­¥÷ÅçÃÒ121
9.2.1²z¸Ñ¨­¥÷ÅçÃÒ¨t²Î121
9.2.2ÂX®i¼Æ¾Ú·½122
9.2.3³Ð«Ø¨­¥÷ÅçÃÒªA°È122
9.2.4±Ò¥Î¨­¥÷ÅçÃÒ123
9.3ÂX®i¼Æ¾Ú·½©M¦sÀx®w125
9.4³Ð«ØºÞ²z¥\¯àµ²ºc128
9.4.1³Ð«Ø¥e¦ì²Å²Õ¥ó128
9.4.2·Ç³Æ±`¥Î¤º®e©M¥\¯à¼Ò¶ô129
9.4.3¹ê²{²£«~¥\¯à130
9.4.4¹ê²{­q³æ¥\¯à133
9.5¥»³¹¤pµ²135
²Ä10³¹SportsStore¡Gº¥¶i¦¡¥\¯à©M³¡¸p137
10.1·Ç³Æ¥Ü¨ÒÀ³¥Îµ{§Ç137
10.2²K¥[º¥¶i¦¡¯S©Ê137
10.2.1¦w¸ËPWA¥]137
10.2.2½w¦s¼Æ¾ÚURL137
10.2.3ÅTÀ³¹ï³s±µªº§ó§ï138
10.3¬°³¡¸p·Ç³ÆÀ³¥Îµ{§Ç140
10.3.1³Ð«Ø¼Æ¾Ú¤å¥ó140
10.3.2³Ð«ØªA°È¾¹140
10.3.3§ó§ï¦sÀx®wÃþ¤¤ªºWebªA°ÈURL142
10.4ºc«Ø©M´ú¸ÕÀ³¥Îµ{§Ç142
10.5±NSportsStoreÀ³¥Îµ{§Ç®e¾¹¤Æ144
10.5.1¦w¸ËDocker144
10.5.2·Ç³ÆÀ³¥Îµ{§Ç144
10.5.3³Ð«ØDocker®e¾¹144
10.5.4¹B¦æÀ³¥Îµ{§Ç145
10.6¥»³¹¤pµ²146
²Ä¢º³¡¤ÀAngular¸Ô¸Ñ
²Ä11³¹³Ð«ØAngular¶µ¥Ø149
11.1³Ð«Ø·sªºAngular¶µ¥Ø149
11.2¤F¸Ñ¶µ¥Øµ²ºc150
11.2.1¤F¸Ñsrc¤å¥ó§¨151
11.2.2¤F¸Ñ¥]¤å¥ó§¨152
11.3¨Ï¥Î¶}µo¤u¨ã154
11.3.1¤F¸Ñ¶}µoHTTPªA°È¾¹155
11.3.2¤F¸Ñ¼ö¼Ò«¬´À´«155
11.3.3¨Ï¥Îlinter156
11.4²z¸ÑAngularÀ³¥Îµ{§Ç¬O¦p¦ó¤u§@ªº158
11.4.1²z¸ÑHTML¤åÀÉ158
11.4.2²z¸ÑÀ³¥Îµ{§Ç¤Þ¾É158
11.4.3²z¸ÑAngular®Ú¼Ò¶ô159
11.4.4²z¸ÑAngular²Õ¥ó160
11.4.5²z¸Ñ¤º®eÅã¥Ü160
11.5¦bAngular¶µ¥Ø¤¤¶}©l¶}µo161
11.5.1²K¥[BootstrapCSS®Ø¬[161
11.5.2³Ð«Ø¼Æ¾Ú¼Ò«¬161
11.5.3³Ð«Ø¼ÒªO©M®Ú²Õ¥ó164
11.5.4°t¸m®ÚAngular¼Ò¶ô165
11.6¥»³¹¤pµ²165
²Ä12³¹¨Ï¥Î¼Æ¾Ú¸j©w167
12.1·Ç³Æ¥Ü¨Ò¶µ¥Ø167
12.2²z¸Ñ³æ¦V¼Æ¾Ú¸j©w168
12.2.1²z¸Ñ¸j©w¥Ø¼Ð169
12.2.2²z¸Ñªí¹F¦¡170
12.2.3²z¸Ñ¬A¸¹171
12.2.4²z¸Ñ±J¥D¤¸¯À171
12.3¨Ï¥Î¼Ð·ÇÄÝ©Ê©MÄݩʸj©w172
12.3.1¨Ï¥Î¼Ð·ÇÄݩʸj©w172
12.3.2¨Ï¥Î¦r²Å¦ê´¡¤J¸j©w173
12.3.3¨Ï¥Î¤¸¯ÀÄݩʸj©w174
12.4³]¸mCSSÃþ©M¼Ë¦¡174
12.4.1¨Ï¥ÎÃþ¸j©w175
12.4.2¨Ï¥Î¼Ë¦¡¸j©w178
12.5§ó·sÀ³¥Îµ{§Çªº¼Æ¾Ú180
12.6¥»³¹¤pµ²182
²Ä13³¹¨Ï¥Î¤º¸m«ü¥O183
13.1·Ç³Æ¥Ü¨Ò¶µ¥Ø183
13.2¨Ï¥Î¤º¸m«ü¥O185
13.2.1¨Ï¥ÎngIf«ü¥O185
13.2.2¨Ï¥ÎngSwitch«ü¥O187
13.2.3¨Ï¥ÎngFor«ü¥O189
13.2.4¨Ï¥ÎngTemplateOutlet«ü¥O195
13.3²z¸Ñ³æ¦V¼Æ¾Ú¸j©wªº­­¨î197
13.3.1¨Ï¥Î¾­µ¥ªí¹F¦¡197
13.3.2²z¸Ñªí¹F¦¡¤W¤U¤å199
13.4¥»³¹¤pµ²201
²Ä14³¹¨Ï¥Î¨Æ¥ó©Mªí³æ203
14.1·Ç³Æ¥Ü¨Ò¶µ¥Ø203
14.1.1¾É¤Jªí³æ¼Ò¶ô203
14.1.2·Ç³Æ²Õ¥ó©M¼ÒªO204
14.2¨Ï¥Î¨Æ¥ó¸j©w205
14.2.1²z¸Ñ°ÊºA©w¸qªºÄÝ©Ê206
14.2.2¨Ï¥Î¨Æ¥ó¼Æ¾Ú208
14.2.3¨Ï¥Î¼ÒªO¤Þ¥ÎÅܶq209
14.3¨Ï¥ÎÂù¦V¼Æ¾Ú¸j©w210
14.4³B²zªí³æ212
14.4.1¦V¥Ü¨ÒÀ³¥Îµ{§Ç²K¥[ªí³æ213
14.4.2²K¥[ªí³æ¼Æ¾ÚÅçÃÒ214
14.4.3ÅçÃÒ¾ã­Óªí³æ221
14.5¨Ï¥Î°ò¤_¼Ò«¬ªºªí³æ226
14.5.1±Ò¥Î°ò¤_¼Ò«¬ªºªí³æ¥\¯à226
14.5.2©w¸qªí³æ¼Ò«¬Ãþ226
14.5.3¨Ï¥Î¼Ò«¬¶i¦æÅçÃÒ229
14.5.4®Ú¾Ú¼Ò«¬¥Í¦¨¤¸¯À231
14.6³Ð«Ø¦Û©w¸qªí³æÅçÃÒ¾¹232
14.7¥»³¹¤pµ²234
²Ä15³¹³Ð«ØÄÝ©Ê«ü¥O235
15.1·Ç³Æ¥Ü¨Ò¶µ¥Ø235
15.2³Ð«Ø²³æªºÄÝ©Ê«ü¥O237
15.3¦b«ü¥O¤¤³X°ÝÀ³¥Îµ{§Ç¼Æ¾Ú239
15.3.1Ū¨ú±J¥D¤¸¯ÀÄÝ©Ê239
15.3.2³Ð«Ø¼Æ¾Ú¸j©w¿é¤JÄÝ©Ê241
15.3.3ÅTÀ³¿é¤JÄݩʪºÅܤÆ243
15.4³Ð«Ø¦Û©w¸q¨Æ¥ó244
15.5³Ð«Ø±J¥D¤¸¯À¸j©w247
15.6¦b±J¥D¤¸¯À¤W³Ð«ØÂù¦V¸j©w248
15.7¾É¥X«ü¥O¥Î¤_¼ÒªOÅܶq250
15.8¥»³¹¤pµ²251
²Ä16³¹³Ð«Øµ²ºc«¬«ü¥O253
16.1·Ç³Æ¥Ü¨Ò¶µ¥Ø253
16.2³Ð«Ø²³æªºµ²ºc«¬«ü¥O254
16.2.1¹ê²{µ²ºc«¬«ü¥OÃþ255
16.2.2±Ò¥Îµ²ºc«¬«ü¥O257
16.2.3¨Ï¥Îµ²ºc«¬«ü¥OªºÂ²¼ä»yªk258
16.3³Ð«Ø­¡¥Nµ²ºc«¬«ü¥O259
16.3.1´£¨ÑÃB¥~ªº¤W¤U¤å¼Æ¾Ú261
16.3.2¨Ï¥Î²¼äªºµ²ºc»yªk262
16.3.3³B²zÄݩʯżƾÚÅܧó263
16.3.4³B²z¶°¦X¯Å¼Æ¾ÚÅܧó264
16.4¬d¸ß±J¥D¤¸¯À¤º®e271
16.4.1¬d¸ß¦h­Ó¤l¤º®e274
16.4.2±µ¦¬¬d¸ßÅܧó³qª¾275
16.5¥»³¹¤pµ²276
²Ä17³¹²z¸Ñ²Õ¥ó277
17.1·Ç³Æ¥Ü¨Ò¶µ¥Ø278
17.2¨Ï¥Î²Õ¥ó¨Ó²Õ´À³¥Îµ{§Ç278
17.2.1³Ð«Ø·s²Õ¥ó279
17.2.2©w¸q¼ÒªO282
17.2.3§¹¦¨²Õ¥óªº­«²Õ289
17.3¨Ï¥Î²Õ¥ó¼Ë¦¡289
17.3.1©w¸q¥~³¡²Õ¥ó¼Ë¦¡290
17.3.2¨Ï¥Î°ª¯Å¼Ë¦¡¯S©Ê291
17.4¬d¸ß¼ÒªO¤º®e296
17.5¥»³¹¤pµ²298
²Ä18³¹¨Ï¥Î©M³Ð«ØºÞ¹D299
18.1·Ç³Æ¥Ü¨Ò¶µ¥Ø299
18.2²z¸ÑºÞ¹D302
18.3³Ð«Ø¤@­Ó¦Û©w¸qºÞ¹D303
18.3.1ª`¥U¦Û©w¸qºÞ¹D303
18.3.2À³¥Î¦Û©w¸qºÞ¹D304
18.3.3²Õ¦XºÞ¹D305
18.3.4³Ð«Ø«D¯ÂºÞ¹D306
18.4¨Ï¥Î¤º¸mºÞ¹D309
18.4.1®æ¦¡¤Æ¼Æ­È309
18.4.2®æ¦¡¤Æ³f¹ô­È311
18.4.3®æ¦¡¤Æ¦Ê¤À¤ñ313
18.4.4®æ¦¡¤Æ¤é´Á314
18.4.5§ïÅܦr²Å¦ê¤j¤p¼g317
18.4.6±N¼Æ¾Ú§Ç¦C¤Æ¬°JSON¼Æ¾Ú317
18.4.7±N¼Æ¾Ú¼Æ²Õ¤Á¤ù318
18.5¥»³¹¤pµ²319
²Ä19³¹¨Ï¥ÎªA°È321
19.1·Ç³Æ¥Ü¨Ò¶µ¥Ø321
19.2²z¸Ñ¹ï¶H¤Àµo°ÝÃD322
19.2.1°ÝÃDªº´£¥X322
19.2.2§Q¥Î¨Ì¿àª`¤J±N¹ï¶H§@¬°ªA°È¤Àµo326
19.2.3¦b¨ä¥Lºc³y¶ô¤¤Án©ú¨Ì¿à330
19.3²z¸Ñ´ú¸Õ¹jÂ÷°ÝÃD335
19.4§¹¦¨ªA°Èªº¿Ä¤J338
19.4.1§ó·s®Ú²Õ¥ó©M¼ÒªO338
19.4.2§ó·s¤l²Õ¥ó339
19.5¥»³¹¤pµ²340
²Ä20³¹¨Ï¥ÎªA°È´£¨Ñµ{§Ç341
20.1·Ç³Æ¥Ü¨Ò¶µ¥Ø342
20.2¨Ï¥ÎªA°È´£¨Ñµ{§Ç343
20.2.1¨Ï¥ÎÃþ´£¨Ñµ{§Ç345
20.2.2¨Ï¥Î­È´£¨Ñµ{§Ç350
20.2.3¨Ï¥Î¤u¼t´£¨Ñµ{§Ç351
20.2.4¨Ï¥Î¤w¦³ªºªA°È´£¨Ñµ{§Ç353
20.3¨Ï¥Î¥»¦a´£¨Ñµ{§Ç354
20.3.1²z¸Ñ³æ­ÓªA°È¹ï¶Hªº§½­­©Ê354
20.3.2¦b²Õ¥ó¤¤³Ð«Ø¥»¦a´£¨Ñµ{§Ç355
20.3.3²z¸ÑªA°È´£¨Ñµ{§Çªº´À¥N¤è®×357
20.3.4±±¨î¨Ì¿à¸ÑªR360
20.4¥»³¹¤pµ²361
²Ä21³¹¨Ï¥Î©M³Ð«Ø¼Ò¶ô363
21.1·Ç³Æ¥Ü¨Ò¶µ¥Ø363
21.2²z¸Ñ®Ú¼Ò¶ô365
21.2.1²z¸ÑimportsÄÝ©Ê366
21.2.2²z¸ÑdeclarationsÄÝ©Ê366
21.2.3²z¸ÑprovidersÄÝ©Ê367
21.2.4²z¸ÑbootstrapÄÝ©Ê367
21.3³Ð«Ø¥\¯à¼Ò¶ô368
21.3.1³Ð«Ø¼Ò«¬¼Ò¶ô369
21.3.2³Ð«Ø¹ê¥Î¤u¨ã¥\¯à¼Ò¶ô373
21.3.3¥Î²Õ¥ó³Ð«Ø¤@­Ó¥\¯à¼Ò¶ô377
21.4¥»³¹¤pµ²380
²Ä¢»³¡¤ÀAngular°ª¯Å¥\¯à
²Ä22³¹³Ð«Ø¥Ü¨Ò¶µ¥Ø383
22.1±Ò°Ê¥Ü¨Ò¶µ¥Ø383
22.1.1²K¥[©M°t¸mBootstrapCSS¥]383
22.1.2³Ð«Ø¶µ¥Øµ²ºc383
22.2³Ð«Ø¼Ò«¬¼Ò¶ô384
22.2.1³Ð«Ø²£«~¼Æ¾ÚÃþ«¬384
22.2.2³Ð«Ø¼Æ¾Ú·½©M¦sÀx®w384
22.2.3§¹¦¨¼Ò«¬¼Ò¶ô385
22.3³Ð«Ø®Ö¤ß¼Ò¶ô385
22.3.1³Ð«Ø¦@¨Éª¬ºAªA°È386
22.3.2³Ð«Øªí®æ²Õ¥ó386
22.3.3³Ð«Øªí³æ²Õ¥ó387
22.4.4§¹¦¨®Ö¤ß¼Ò¶ô389
22.4³Ð«Ø®ø®§¼Ò¶ô389
22.4.1³Ð«Ø®ø®§¼Ò«¬©MªA°È389
22.4.2³Ð«Ø²Õ¥ó©M¼ÒªO390
22.4.3§¹¦¨®ø®§¼Ò¶ô390
22.5§¹¦¨¶µ¥Ø391
22.6¥»³¹¤pµ²392
²Ä23³¹¨Ï¥ÎReactiveExtensions393
23.1·Ç³Æ¥Ü¨Ò¶µ¥Ø394
23.2²z¸Ñ°ÝÃD394
23.3¨Ï¥ÎReactiveExtensions¸Ñ¨M°ÝÃD396
23.3.1²z¸ÑObservable396
23.3.2²z¸ÑObserver398
23.3.3²z¸ÑSubject399
23.4¨Ï¥ÎasyncºÞ¹D400
23.5ÂX®iÀ³¥Îµ{§Ç¥\¯à¼Ò¶ô402
23.6§ó¶i¤@¨B404
23.6.1¹LÂo¨Æ¥ó404
23.6.2Âà´«¨Æ¥ó405
23.6.3¥u±µ¦¬¤£¦Pªº¨Æ¥ó407
23.6.4Àò¨ú©M©¿²¤¨Æ¥ó409
23.7¥»³¹¤pµ²410
²Ä24³¹¥Í¦¨²§¨BHTTP½Ð¨D411
24.1·Ç³Æ¥Ü¨Ò¶µ¥Ø411
24.1.1°t¸m¼Ò«¬¥\¯à¼Ò¶ô412
24.1.2³Ð«Ø¼Æ¾Ú¤å¥ó412
24.1.3§ó·sªí³æ²Õ¥ó413
24.1.4¹B¦æ¥Ü¨Ò¶µ¥Ø413
24.2²z¸ÑRESTfulWebªA°È414
24.3´À´«ÀRºA¼Æ¾Ú·½414
24.3.1³Ð«Ø·sªº¼Æ¾Ú·½ªA°È414
24.3.2°t¸m¼Æ¾Ú·½416
24.3.3¨Ï¥ÎREST¼Æ¾Ú·½416
24.3.4«O¦s©M§R°£¼Æ¾Ú417
24.4¥[±jHTTP½Ð¨D419
24.5¥Í¦¨¸ó°ì½Ð¨D420
24.6°t¸m½Ð¨DÀY422
24.7³B²z¿ù»~424
24.7.1¥Í¦¨¥Î¤á¥i¨Ï¥Îªº®ø®§425
24.7.2³B²z¿ù»~426
24.8¥»³¹¤pµ²427
²Ä25³¹¸ô¥Ñ»P¾É¯è¡G²Ä1³¡¤À429
25.1·Ç³Æ¥Ü¨Ò¶µ¥Ø429
25.2¶}©l¾Ç²ß¸ô¥Ñ431
25.2.1³Ð«Ø¸ô¥Ñ°t¸m431
25.2.2³Ð«Ø¸ô¥Ñ²Õ¥ó433
25.2.3§ó·s®Ú¼Ò¶ô433
25.2.4§¹¦¨°t¸m433
25.2.5²K¥[¾É¯èÃì±µ434
25.2.6²z¸Ñ¸ô¥Ñªº®ÄªG436
25.3§¹¦¨¸ô¥Ñ¹ê²{437
25.3.1¦b²Õ¥ó¤¤³B²z¸ô¥ÑÅܤÆ438
25.3.2¨Ï¥Î¸ô¥Ñ°Ñ¼Æ439
25.3.3¦b¥N½X¤¤¾É¯è444
25.3.4±µ¦¬¾É¯è¨Æ¥ó445
25.3.5§R°£¨Æ¥ó¸j©w©M¤ä«ù¥N½X446
25.4¥»³¹¤pµ²448
²Ä26³¹¸ô¥Ñ»P¾É¯è¡G²Ä2³¡¤À449
26.1·Ç³Æ¥Ü¨Ò¶µ¥Ø449
26.2¨Ï¥Î³q°t²Å©M­«©w¦V454
26.2.1¦b¸ô¥Ñ¤¤¨Ï¥Î³q°t²Å454
26.2.2¦b¸ô¥Ñ¤¤¨Ï¥Î­«©w¦V455
26.3¦b²Õ¥ó¤º³¡¾É¯è456
26.3.1ÅTÀ³¥¿¦bµo¥Íªº¸ô¥ÑÅܤÆ457
26.3.2¬°¬¡°Ê¸ô¥Ñ³]¸m¤£¦P¼Ë¦¡ªºÃì±µ459
26.3.3­×´_All«ö¶s461
26.4³Ð«Ø¤l¸ô¥Ñ462
26.4.1³Ð«Ø¤l¸ô¥Ñ¥X¤f463
26.4.2±q¤l¸ô¥Ñ³X°Ý°Ñ¼Æ464
26.5¥»³¹¤pµ²467
²Ä27³¹¸ô¥Ñ»P¾É¯è¡G²Ä3³¡¤À469
27.1·Ç³Æ¥Ü¨Ò¶µ¥Ø469
27.2¦u½Ã¸ô¥Ñ470
27.2.1¨Ï¥Î¸ÑªR¾¹±À¿ð¾É¯è470
27.2.2ÁקK±a¦³¦u½Ãªº¾É¯è476
27.3°ÊºA¥[¸ü¥\¯à¼Ò¶ô484
27.3.1³Ð«Ø¤@­Ó²³æªº¥\¯à¼Ò¶ô484
27.3.2°ÊºA¥[¸ü¼Ò¶ô485
27.3.3¦u½Ã°ÊºA¼Ò¶ô488
27.4«ü©w©R¦W¥X¤f490
27.4.1³Ð«Øªþ¥[ªº¥X¤f¤¸¯À490
27.4.2¦b¨Ï¥Î¦h­Ó¥X¤fªº±¡ªp¤U¾É¯è491
27.5¥»³¹¤pµ²493
²Ä28³¹¨Ï¥Î°Êµe495
28.1·Ç³Æ¥Ü¨Ò¶µ¥Ø496
28.1.1¸T¥ÎHTTP©µ¿ð496
28.1.2²¤Æªí®æ¼ÒªO©M¸ô¥Ñ°t¸m496
28.2¶}©l¾Ç²ßAngular°Êµe498
28.2.1±Ò¥Î°Êµe¼Ò¶ô498
28.2.2³Ð«Ø°Êµe499
28.2.3À³¥Î°Êµe501
28.2.4´ú¸Õ°Êµe®ÄªG503
28.3²z¸Ñ¤º¸mªº°Êµeª¬ºA504
28.4²z¸Ñ¤¸¯À¹L´ç505
28.4.1¬°¤º¸mª¬ºA³Ð«Ø¹L´ç505
28.4.2±±¨î°Êµeªº¹L´ç506
28.5²z¸Ñ°Êµe¼Ë¦¡²Õ510
28.5.1¦b¥i­«¥Îªº¤À²Õ¤¤©w¸q¤½¦@¼Ë¦¡510
28.5.2¨Ï¥Î¤¸¯ÀÅܧÎ511
28.5.3À³¥ÎCSS®Ø¬[¼Ë¦¡512
28.6¥»³¹¤pµ²514
²Ä29³¹Angular³æ¤¸´ú¸Õ515
29.1·Ç³Æ¥Ü¨Ò¶µ¥Ø516
29.2³Ð«Ø¤@­Ó²³æªº³æ¤¸´ú¸Õ517
29.3¨Ï¥ÎJasmine§¹¦¨³æ¤¸´ú¸Õ518
29.4´ú¸ÕAngular²Õ¥ó519
29.4.1¨Ï¥ÎTestBedÃþ§¹¦¨¤u§@519
29.4.2´ú¸Õ¼Æ¾Ú¸j©w522
29.4.3´ú¸Õ±a¦³¥~³¡¼ÒªOªº²Õ¥ó523
29.4.4´ú¸Õ²Õ¥ó¨Æ¥ó525
29.4.5´ú¸Õ¿é¥XÄÝ©Ê526
29.4.6´ú¸Õ¿é¤JÄÝ©Ê528
29.4.7´ú¸Õ²§¨B¾Þ§@529
29.5´ú¸ÕAngular«ü¥O531
29.6¥»³¹¤pµ²532


§Ç¡G