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檔,所以也可以把整個程式碼複製到你熟悉的網頁開發軟體內,一樣會看到同樣的結果喔!
If she can reduce her load to certain extent and give time for relationship.
purchase neurontin generic – sulfasalazine online order azulfidine 500mg without prescription
Оборудование для живодноводческих хозяйств.
Предприятие ООО «Агроферма» основано в 2011 году и на сегодняшний день является лидером в сфере оптовых и розничных поставок оборудования, запасных частей и расходных материалов для молочно-товарных ферм, животноводческих, свиноводческих и сельскохозяйственных комплексов, личных подсобных хозяйств.
Мы работаем в тесном сотрудничестве с хозяйствами и предприятиями России, Беларуси, Европы и Азии (более 15 известных брендов). Товар закупаем напрямую от заводов производителей, без посредников. Все поставляемое нами оборудование соответствует мировым стандартам качества.
Цены на всю продукцию на нашем сайте agro-ferm.ru
4. Mood Disorders Related to Other Health Conditions: Some individuals may develop mood disorders as a result of another underlying health condition, such as thyroid problems, hormonal imbalances, or neurological disorders.
It has a palette of 65,535 colors that it can potentially display.
Revenues need to increase substantially to offset this government debt or the budget deficit will balloon out of control.
Great article! We are linking to this particularly great post on our site. Keep up the good writing.
Строительство, ремон своими руками. Советы мастеров и лучших специалстов в своем деле.
Каким вы видите свой будущий дом? Выполненный в духе уютного загородного шале или со сложными геометрическими формами и яркими элементами?
<a href=https://www.vuz-chursin.ru/stroitelstvo]Строительство
<a href=https://www.vuz-chursin.ru/stroymaterialy-0]Стройматериалы
<a href=https://www.vuz-chursin.ru/remont-i-otdelka]Отделка
Для большинства людей своя, пускай, даже крохотная, но отдельная однокомнатная квартира, намного слаще, чем аренда 5-комнтантного пентхауса за смешные деньги. Здесь можно устанавливать свои правила, планировать ремонт, делать перестановку, а единственное ограничение – это пространство.
Каталог полезных статей о стройке и ремонте <a href=https://vuz-chursin.ru/.
The very next time I read a blog, I hope that it won’t fail me just as much as this particular one. I mean, Yes, it was my choice to read, however I genuinely thought you would probably have something interesting to talk about. All I hear is a bunch of crying about something that you could fix if you were not too busy seeking attention.
Юридические услуги в Москве
Юридическая компания Вершинина и партнеры создана в помощь вам и вашему бизнесу. Мы защищаем интересы физических и юридических лиц в досудебном и судебном порядке.
Юридическим лицам будем полезны в случаях, если возникнут коммерческие споры, оспорим штрафы от гос. органов, МАДИ, поможем в страховых спорах, разрешим спорные ситуации между партнёрами при необходимости проведем досудебные переговоры, медиацию, так же обеспечим комплексную защиту интересов вашего бизнеса ежемесячно.
Физическим лицам поможем урегулировать семейные споры, взыскать долги с застройщика, со страховой компании, с виновника при заливе, с должника по договору займа, с виновника в ДТП.
Цены на все услуги на нашем сайте .
In the long term this is only going to save on energy use and ultimately money, whilst adding value to the home!
Fire certificates are no longer issued by the local Fire Authority and employers are required to ensure they have an up to date fire risk assessment for their site.
Companies that do not make enough profit to pay off their debts and are only able to survive by repeatedly refinancing their loans, known as “zombie firms”, have been able to turn over their debt because low interest rates increase the willingness of lenders to buy higher yield corporate debt, while the yield they offer on their bonds remains at near-historical lows.
You will also hear a lot of old floppy-disk and other DOS games referred to as ROMs.
Investors should avoid buying the metal at the spot price at the prices above the location price is charged unequally.
I’m impressed, I must say. Rarely do I come across a blog that’s both educative and engaging, and without a doubt, you’ve hit the nail on the head. The issue is something that too few men and women are speaking intelligently about. Now i’m very happy that I found this during my search for something relating to this.
cost besivance – oral besivance sildamax where to buy
I’ve never commented on a blog post before, but I couldn’t resist after reading yours. It was just too good not to!
I’d like to thank you for the efforts you’ve put in penning this site. I’m hoping to view the same high-grade blog posts from you later on as well. In fact, your creative writing abilities has encouraged me to get my very own blog now 😉
Everything is very open with a very clear explanation of the challenges. It was definitely informative. Your website is very useful. Thank you for sharing!
This is the perfect web site for anybody who wants to find out about this topic. You realize a whole lot its almost tough to argue with you (not that I personally will need to…HaHa). You certainly put a brand new spin on a topic that has been discussed for years. Great stuff, just great.
This post is wonderful. I gained plenty from perusing it. The information is highly informative and arranged.
gay porn
The ’80s TV series “Knight Rider” featured which flaming-hot car as one of its main characters?
The usual dose is 125 mg three to four times daily.
For effective treatment, use does prednisone make you pee a lot is 24/7.
NRC also performs inspections and oversees emergency response programs for licensees.
incest porn
buy deflazacort for sale – buy calcort pills order alphagan sale
gay porn
bookmarked!!, I like your blog!
homosexual porn