AngularJS – 跟著Google玩網頁!
今天馬老師要與大家分享的是一個前端開發的函式庫AngularJS,前面的文章中都有提到,因為近年來行動裝置的普及讓Javascript大為活躍,不過傳統的Javascript在相容性上、操作上都非常的不方便,所以才有了許許多多Javascript的函式庫與框架的誕生,例如:jQuery、KnockoutJS、GSAP、PaperJS…等,每個Javascript的函式庫和框架的大小、作用和目的都不盡相同,有的是為了特效;有的則是為了方便操作,那今天為何要跟大家分享AngularJS呢?因為…它是名牌!
為何說AngularJS是名牌呢?因為目前他是由Google來負責維護。初始版本是在2009年誕生的,比jQuery晚了三年,言下之意就會比jQuery好嗎?當然也不能這麼說,jQuery在目前還是一個非常火燙的前端開發函式庫,應該要說他們兩個在使用的架構和目的上會有所不同,這篇文章也來比較一下同樣的案例,在兩種語法上面撰寫的不同。
不過首先我們要知道基本的AngularJS開發方式,今天的案例我們利用JS Bin的線上開發網頁來說明,大家也可以到這個平台上來試著玩看看!如果需要利用AngularJS開發自己的網頁,也可以到AngularJS的官方網頁把JS下載到資料夾之後引用到網頁裡。
1. 首先點選Add library後選擇AngularJS Stable,這樣該平台就會加入AngularJS的函式庫進入頁面。
2. 在標籤中,加入ng-app的屬性,讓整份文件都可以使用AngularJS。
3. 接下來就可以在左手邊body標籤內開始輸入一些程式碼來測試,AngularJS在輸出方面有個基本的結構式「{{ }}」,大家輸入以下的程式碼來測試看看結果:
<!DOCTYPE html> <html ng-app> <head> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.2/angular.min.js"></script> <meta charset="utf-8"> <title>JS Bin</title> </head> <body> <p>{{ '馬老師雲端研究室' }}</p> <p>35+62={{ 35+62 }}</p> <p>NT{{ 62000 | currency }}</p> </body> </html>
可以看到輸出的結果應該是:(在JS Bin上面看AngularJS輸出結果)
馬老師雲端研究室 35+62=97 NT$62,000.00
同樣的如果我們要利用jQuery來完成這樣的頁面,程式碼就會變成:(在JS Bin上面看jQuery輸出結果)
<!DOCTYPE html> <html> <head> <script src="https://code.jquery.com/jquery-1.11.1.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/numeral.js/1.4.5/numeral.min.js"></script> <meta charset="utf-8"> <title>JS Bin</title> </head> <body> <p></p> <p></p> <p></p> </body> </html> <script> $("p:eq(0)").text('馬老師雲端研究室') $("p:eq(1)").text('35+62=' + (35 + 62)) $("p:eq(2)").text('NT' + (numeral(62000).format('$ 0,0.00'))) </script>
請注意,為了要完成第三項貨幣型式的呈現,我們還必須去引用這個網站的jQuery Plugin才有辦法比較輕鬆的實現。從上面的案例可以看的出來jQuery是由HTML DOM來抓到對象,再針對對象做操作,而AngularJS不管顯示的效果為何,就是在需要有程式運算的地方出現,所以AngularJS也被稱為符合MVC結構的Javascript函式庫(MVC是一種寫程式的結構,全名是Model View Controller,大家可以上網Google就可以查到很多與MVC相關的資料),但如果你有進入官網,可以看到官網上他的標題是「AngularJS – Superheroic JavaScript MVW Framework」,翻譯成中文大概是「AngularJS是一個符合MV…Whatever什麼什麼隨便啦!的超級函式庫」,可以看出Google的惡搞功夫。
再來示範第二個案例,本案例利用購物行為來製作相關的頁面讓大家參考,程式碼如下:
<!DOCTYPE html> <html ng-app> <head> <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.2/angular.min.js"></script> <meta charset="utf-8"> <title>JS Bin</title> </head> <body ng-init="stock=120;price=325;quantity=1;total=0"> <p>馬老師雲端研究室 滑鼠墊</p> <p>剩餘:<span ng-model="stock">{{ stock-quantity }}</span>個</p> <p>單價:<span ng-model="price">{{ price | currency:"NT$":0 }}</span>元</p> <p>數量:<input type="number" min="0" max="{{ stock }}" ng-model="quantity"></p> <p>總金額:<span ng-model="total">{{ price*quantity | currency:"NT$":0 }}</span></p> </body> </html>
輸出結果:(在JS Bin上面看AngularJS輸出結果)
在這個案例裡面有四個項目,分別是商品剩餘數量、單價、數量、總金額,使用者唯一可以改變的只有數量,但頁面中會自動運算剩餘數量和總金額,其中在語法body標籤中,加上了ng-init屬性,代表設定這幾個項目的預設值,stock(剩餘數量)120個、price(單價)325元、quantity(數量)1個,total(總金額)325元。接下來在span內的ng-model就是去綁定該定義項目,{{ }}則是顯示該項目或運算結果,另外貨幣格式的部分,也是用了一些設定讓貨幣在這個案例裡面顯示得更為接近台幣格式,另外還是用HTML5 input標籤的min和max來限制欄位內的值。 而這個案例如果轉換為jQuery的寫法,大概會是下面這樣子:(在JS Bin上面看jQuery輸出結果)
<!DOCTYPE html> <html> <head> <script src="http://code.jquery.com/jquery-1.11.1.min.js"></script> <script src="http://cdnjs.cloudflare.com/ajax/libs/numeral.js/1.4.5/numeral.min.js"></script> <meta charset="utf-8"> <title>JS Bin</title> </head> <body> <p>馬老師雲端研究室 滑鼠墊</p> <p>剩餘:<span id="stock"></span>個</p> <p>單價:<span id="price"></span>元</p> <p>數量:<input type="number" min="0" ng-model="quantity" id="quantity"></p> <p>總金額:<span id="total"></span>元</p> </body> </html> <script> var stock = 120; var price = 325; var quantity = 1; var total = 325; $("#stock").text(stock) $("#price").text('NT' + (numeral(price).format('$ 0,0'))) $("#quantity").val(quantity).attr( "max", stock) $("#total").text('NT' + (numeral(total).format('$ 0,0'))) $("#quantity").change(function () { quantity = $(this).val() newstock = stock - $(this).val() total = price * $(this).val() $("#stock").text( newstock) $("#price").text('NT' + (numeral(price).format('$ 0,0'))) $("#total").text('NT' + ( numeral(total).format('$ 0,0'))) }) </script>
後記:以上兩個案例示範的是jQuery和AngularJS在撰寫頁面的不同,不過因為這篇文章原本就是要以AngularJS為主,所以挑的案例當然會是AngularJS比較佔優勢的內容,還是跟我常說的一樣,做不同的東西就要用不同的工具,用錯了工具不是做不到,但可能是會事倍功半的!另外文章中的程式碼,都是嵌入遠端的JS檔,所以也可以把整個程式碼複製到你熟悉的網頁開發軟體內,一樣會看到同樣的結果喔!
снят проститутка москве дешевые проститутки москвы
Romelu Menama Lukaku Bolingoli https://romelu-lukaku.prostoprosport-cz.org Belgicky fotbalista, utocnik anglickeho klubu Chelsea a Belgican vyber. Na hostovani hraje za italsky klub Roma.
Darwin Gabriel Nunez Ribeiro https://darwin-nunez.prostoprosport-cz.org Uruguaysky fotbalista, utocnik anglickeho klubu Liverpool a Uruguaysky narodni tym. Bronzovy medailista mistrovstvi Jizni Ameriky mezi mladeznickymi tymy.
Toni Kroos https://toni-kroos.prostoprosport-cz.org je nemecky fotbalista, ktery hraje jako stredni zaloznik za Real Madrid a nemecky narodni tym. Mistr sveta 2014. Prvni nemecky hrac v historii, ktery sestkrat vyhral Ligu mistru UEFA.
Toni Kroos https://toni-kroos.prostoprosport-cz.org je nemecky fotbalista, ktery hraje jako stredni zaloznik za Real Madrid a nemecky narodni tym. Mistr sveta 2014. Prvni nemecky hrac v historii, ktery sestkrat vyhral Ligu mistru UEFA.
Bruno Guimaraes Rodriguez Moura https://bruno-guimaraes.prostoprosport-cz.org Brazilsky fotbalista, defenzivni zaloznik Newcastlu United a Brazilsky narodni tym. Vitez olympijskych her 2020 v Tokiu.
Virgil van Dijk https://virgil-van-dijk.prostoprosport-cz.org Nizozemsky fotbalista, stredni obrance, kapitan anglickeho klubu Liverpool a kapitan nizozemskeho narodniho tymu.
Thibaut Nicolas Marc Courtois https://thibaut-courtois.prostoprosport-cz.org Belgicky fotbalista, brankar spanelskeho klubu Real Madrid . V sezone 2010/11 byl uznan jako nejlepsi brankar v belgicke Pro League a take hrac roku pro Genk. Trojnasobny vitez Ricardo Zamora Trophy
Karim Benzema https://karim-benzema.prostoprosport-cz.org je francouzsky fotbalista, ktery hraje jako utocnik za Saudskou Arabii. Arabsky klub Al-Ittihad. Hral za francouzsky narodni tym, za ktery odehral 97 zapasu a vstrelil 37 branek. V 17 letech se stal jednim z nejlepsich hracu rezervy, nastrilel tri desitky golu za sezonu.
Rodrigo Silva de Goiz https://rodrygo.prostoprosport-cz.org Brazilsky fotbalista, utocnik Realu Madrid a brazilskeho narodniho tymu. V breznu 2017 byl Rodrigo povolan do narodniho tymu Brazilie U17 na zapasy Montague Tournament.
Alison Ramses Becker https://alisson-becker.prostoprosport-cz.org Brazilsky fotbalista nemeckeho puvodu, brankar klubu Liverpool a brazilsky narodni tym. Je povazovan za jednoho z nejlepsich brankaru sve generace a je znamy svymi vynikajicimi zakroky, presnosti prihravek a schopnosti jeden na jednoho.
Pedro Gonzalez Lopez https://pedri.prostoprosport-cz.org lepe znamy jako Pedri, je spanelsky fotbalista, ktery hraje jako utocny zaloznik. za Barcelonu a spanelskou reprezentaci. Bronzovy medailista z mistrovstvi Evropy 2020 a zaroven nejlepsi mlady hrac tohoto turnaje.
Cristiano Ronaldo https://cristiano-ronaldo.prostoprosport-cz.org je portugalsky fotbalista, utocnik, kapitan Saudske Arabie klubu An-Nasr a portugalskeho narodniho tymu. Mistr Evropy. Povazovan za jednoho z nejlepsich fotbalistu vsech dob. Nejlepsi strelec v historii fotbalu podle IFFIS a ctvrty podle RSSSF
Son Heung Min https://son-heung-min.prostoprosport-cz.org Jihokorejsky fotbalista, utocnik a kapitan anglickeho klubu Premier League Tottenham Hotspur a narodniho tymu Korejske republiky. V roce 2022 vyhral Zlatou kopacku Premier League.
Pablo Martin Paez Gavira https://gavi.prostoprosport-cz.org Spanelsky fotbalista, zaloznik barcelonskeho klubu a spanelske reprezentace. Povazovan za jednoho z nejtalentovanejsich hracu sve generace. Ucastnik mistrovstvi sveta 2022. Vitez Ligy narodu UEFA 2022/23
Luka Modric https://luka-modric.prostoprosport-cz.org je chorvatsky fotbalista, stredni zaloznik a kapitan spanelskeho tymu. klub Real Madrid, kapitan chorvatskeho narodniho tymu. Uznavan jako jeden z nejlepsich zalozniku nasi doby. Rytir Radu prince Branimira. Rekordman chorvatske reprezentace v poctu odehranych zapasu.
Профессиональные seo https://seo-optimizaciya-kazan.ru услуги для максимизации онлайн-видимости вашего бизнеса. Наши эксперты проведут глубокий анализ сайта, оптимизируют контент и структуру, улучшат технические аспекты и разработают индивидуальные стратегии продвижения.
Robert Lewandowski https://robert-lewandowski.prostoprosport-cz.org je polsky fotbalista, utocnik spanelskeho klubu Barcelona a kapitan polskeho narodniho tymu. Povazovan za jednoho z nejlepsich utocniku na svete. Rytir krize velitele polskeho renesancniho radu.
Antoine Griezmann https://antoine-griezmann.prostoprosport-cz.org Francouzsky fotbalista, utocnik a zaloznik za Atletico de Madrid. Hrac a vicekapitan francouzskeho narodniho tymu, clen tymu – mistr sveta 2018 Stribrny medailista z mistrovstvi Evropy 2016 a mistrovstvi sveta 2022.
Bernardo Silva https://bernardo-silva.prostoprosport-cz.org Portugalsky fotbalista, zaloznik. Narozen 10. srpna 1994 v Lisabonu. Silva je povazovan za jednoho z nejlepsich utocnych zalozniku na svete. Fotbalista je povestny svou vytrvalosti a vykonem.
Lionel Messi https://lionel-messi.prostoprosport-cz.org je argentinsky fotbalista, utocnik a kapitan klubu MLS Inter Miami. , kapitan argentinske reprezentace. Mistr sveta, vitez Jizni Ameriky, vitez finale, olympijsky vitez. Povazovan za jednoho z nejlepsich fotbalistu vsech dob.
Vinicius Jose Paixan de Oliveira Junior vinicius-junior.prostoprosport-cz.org bezne znamy jako Vinicius Junior je brazilsky a spanelsky fotbalista , utocnik klubu Real Madrid a brazilsky reprezentant.
Kevin De Bruyne https://kevin-de-bruyne.prostoprosport-cz.org Belgicky fotbalista, zaloznik Manchesteru klub City” a belgicky narodni tym. Absolvent fotbalovych klubu „Ghent” a „Genk”. V roce 2008 zahajil svou karieru dospelych, debutoval v Genku.
Mohamed Salah https://mohamed-salah.prostoprosport-cz.org je egyptsky fotbalista, ktery hraje jako utocnik za anglictinu. klub Liverpool a egyptsky narodni tym. Povazovan za jednoho z nejlepsich fotbalistu na svete.
cyclophosphamide pills – stavudine cost cheap vastarel pill
Harry Kane https://harry-kane.prostoprosport-cz.org dostal pozvanku do anglickeho tymu nezletilych jako prvni cas 17. na turnaj mladeze v Portugalsku. Utocnik se zaroven kvuli vazne nemoci neobjevil na triumfalnim mistrovstvi Evropy muzu do 17 let 2010 pro Brity.
Kylian Mbappe Lotten https://kylian-mbappe.prostoprosport-cz.org Francouzsky fotbalista, utocnik Paris Saint-Germain a kapitan tymu francouzskeho tymu. 1. cervence 2024 se stane hracem spanelskeho klubu Real Madrid.
Erling Breut Haaland https://erling-haaland.prostoprosport-cz.org je norsky fotbalista, ktery hraje jako utocnik za Anglicky klub Manchester City a norska reprezentace. Rekordman anglicke Premier League v poctu golu za sezonu.
Jude Victor William Bellingham https://jude-bellingham.prostoprosport-cz.org anglicky fotbalista, zaloznik spanelskeho klubu Real Madrid a anglicky narodni tym. V dubnu 2024 ziskal cenu za prulom roku z Laureus World Sports Awards. Stal se prvnim fotbalistou, ktery ji obdrzel.
Edson Arantes do Nascimento https://pele.prostoprosport-br.com Brazilian footballer, forward (attacking midfielder. Played for Santos clubs) and New York Cosmos. Played 92 matches and scored 77 goals for the Brazilian national team.