最近想做一款跨平臺(tái)(pc/app/pad)的東西玩玩,研究了許多技術(shù):android、ios、H5、Bootrap、angular、angular2、ApiCloud、html' target='_blank'>微信小程序
除android、ios 本身的枷鎖(系統(tǒng))其它 的都 可以實(shí)現(xiàn)跨平臺(tái),尤其ApiCloud、微信小程序做開(kāi)發(fā)sdk級(jí)解決方案很是火熱,但是從技術(shù)主權(quán)上講太依賴人家的東西,
H5 、bootstrap 在響應(yīng)式相當(dāng)優(yōu)秀,前后端框架基本可以承包 。
當(dāng)然還有很多 前端框架 如vue.js 等等。
不知道why,目前對(duì)angular產(chǎn)生興趣,興趣是最不要臉的行為號(hào)召力,比如你對(duì)某個(gè)漂亮姑娘產(chǎn)生了濃厚的興趣,然后。。。。(~~~開(kāi)個(gè)玩笑)
然后就要去想辦法接近 “她” ~~
我要接近 angular ~~
先從收集信息開(kāi)始 :
她從哪來(lái)?
AngularJS[1] 誕生于2009年,由Misko Hevery 等人創(chuàng)建,后為Google所收購(gòu)。是一款優(yōu)秀的前端JS框架,已經(jīng)被用于Google的多款產(chǎn)品當(dāng)中。AngularJS有著諸多特性,最為核心的是:MVC、模塊化、自動(dòng)化雙向數(shù)據(jù)綁定、語(yǔ)義化標(biāo)簽、依賴注入等等。
她的迷人之處?
AngularJS是為了克服HTML在構(gòu)建應(yīng)用上的不足而設(shè)計(jì)的。HTML是一門(mén)很好的偽靜態(tài)文本展示設(shè)計(jì)的聲明式語(yǔ)言,但要構(gòu)建WEB應(yīng)用的話它就顯得乏力了。
通常,我們是通過(guò)以下技術(shù)來(lái)解決靜態(tài)網(wǎng)頁(yè)技術(shù)在構(gòu)建動(dòng)態(tài)應(yīng)用上的不足:類庫(kù) - 類庫(kù)是一些函數(shù)的集合,它能幫助你寫(xiě)WEB應(yīng)用。起主導(dǎo)作用的是你的代碼,由你來(lái)決定何時(shí)使用類庫(kù)。類庫(kù)有:jQuery等框架 - 框架是一種特殊的、已經(jīng)實(shí)現(xiàn)了的WEB應(yīng)用,你只需要對(duì)它填充具體的業(yè)務(wù)邏輯。這里框架是起主導(dǎo)作用的,由它來(lái)根據(jù)具體的應(yīng)用邏輯來(lái)調(diào)用你的代碼??蚣苡校簁nockout、sproutcore等。------好吧,還不夠迷人AngularJS通過(guò)為開(kāi)發(fā)者呈現(xiàn)一個(gè)更高層次的抽象來(lái)簡(jiǎn)化應(yīng)用的開(kāi)發(fā)。如同其他的抽象技術(shù)一樣,這也會(huì)損失一部分靈活性。換句話說(shuō),并不是所有的應(yīng)用都適合用AngularJS來(lái)做。AngularJS主要考慮的是構(gòu)建CRUD應(yīng)用。幸運(yùn)的是,至少90%的WEB應(yīng)用都是CRUD應(yīng)用。但是要了解什么適合用AngularJS構(gòu)建,就得了解什么不適合用AngularJS構(gòu)建。如游戲,圖形界面編輯器,這種DOM操作很頻繁也很復(fù)雜的應(yīng)用,和CRUD應(yīng)用就有很大的不同,它們不適合用AngularJS來(lái)構(gòu)建。像這種情況用一些更輕量、簡(jiǎn)單的技術(shù)如jQuery可能會(huì)更好。------心動(dòng)了么?----------不得不說(shuō),我們所有的互聯(lián)網(wǎng)行為無(wú)非是一個(gè)個(gè)的數(shù)據(jù)點(diǎn)進(jìn)行CRUD,如購(gòu)物車(chē)加減商品(+ -)、查 機(jī)票、車(chē)票 、清除 不聯(lián)系的微信好友 、下個(gè)訂單------------
進(jìn)一步探索: 在 html 標(biāo)簽里,我們用一個(gè)ng-app標(biāo)識(shí)符標(biāo)明這是一個(gè)AngularJS應(yīng)用。這個(gè)ng-app標(biāo)識(shí)符會(huì)使AngularJS自動(dòng)初始化(auto initialize)你的應(yīng)用。我們用 script 標(biāo)簽來(lái)加載AngularJS腳本: script src= angular-1.1.0.min.js?1.1.11 /script 通過(guò)設(shè)置 input 標(biāo)簽里的ng-model屬性, AngularJS會(huì)自動(dòng)對(duì)數(shù)據(jù)進(jìn)行雙向綁定。我們還同時(shí)進(jìn)行了一些簡(jiǎn)單的數(shù)據(jù)驗(yàn)證:Quantity: input type= integer min= 0 ng-model= qty required Cost: input type= number ng-model= cost required 這個(gè)輸入框的widget看起來(lái)很普通,但如果認(rèn)識(shí)到以下幾點(diǎn)那它就不普通了:當(dāng)頁(yè)面加載完后,AngularJS會(huì)依照widget里的聲明的模型名字(qty、cost)生成同名變量??梢园堰@些變量認(rèn)為是MVC設(shè)計(jì)模式中的M(Model);注意上面widget里的input有著特殊的能力。如果你們沒(méi)有輸入數(shù)據(jù)或者輸入的數(shù)據(jù)無(wú)效,這個(gè)input輸入框會(huì)自動(dòng)變紅。輸入框的這種新特性,能讓開(kāi)發(fā)者更容易實(shí)現(xiàn)CRUD應(yīng)用里常見(jiàn)的字段驗(yàn)證功能。終于,我們可以來(lái)看一下神秘的雙大括號(hào){{}}了:Total:{{qty *cost |currency}}這個(gè){{表達(dá)式}}標(biāo)記是AngularJS的數(shù)據(jù)綁定。其中的表達(dá)式可以是表達(dá)式和過(guò)濾器({{ expression | filter }})的組合。AngularJS提供了過(guò)濾器來(lái)對(duì)輸入輸出數(shù)據(jù)格式化。上面的這個(gè)例子里,{{}}里的表達(dá)式讓AngularJS把從輸入框中獲得的數(shù)據(jù)相乘,然后把相乘結(jié)果格式化成本地貨幣樣式,然后輸出到頁(yè)面上。值得一提的是,我們既沒(méi)有調(diào)用任何AngularJS的方法,也沒(méi)有像用框架一樣去編寫(xiě)某個(gè)具體邏輯,就是完成了上述功能。這個(gè)實(shí)現(xiàn)的背后是因?yàn)?a href='http://www.49028c.com/tag/liulanqi_7527_1.html' target='_blank'>瀏覽器做了比以往生成 靜態(tài)頁(yè)面更多的工作,讓它能滿足動(dòng)態(tài)WEB應(yīng)用的需要。AngularJS使得動(dòng)態(tài)WEB應(yīng)用的開(kāi)發(fā)門(mén)檻降到不需要類庫(kù)或者框架的程度。 Angular信奉的是,當(dāng)組建視圖(UI)同時(shí)又要寫(xiě)軟件邏輯時(shí),聲明式的代碼會(huì)比命令式的代碼好得多,盡管命令式的代碼非常適合用來(lái)表述業(yè)務(wù)邏輯。將DOM操作和應(yīng)用邏輯解耦是一種非常好的思路,它能大大改善代碼的可調(diào)性;將測(cè)試和開(kāi)發(fā)同等看待是一種非常非常好的思路,測(cè)試的難度在很大程度上取決于代碼的結(jié)構(gòu);將客戶端和服務(wù)器端解耦是一種特別好的做法,它能使兩邊并行開(kāi)發(fā),并且使兩邊代碼都能實(shí)現(xiàn)重用;如果框架能夠在整個(gè)開(kāi)發(fā)流程里都引導(dǎo)著開(kāi)發(fā)者:從設(shè)計(jì)UI,到編寫(xiě)業(yè)務(wù)邏輯,再到測(cè)試,那對(duì)開(kāi)發(fā)者將是極大的幫助;“化繁為簡(jiǎn),化簡(jiǎn)為零”總是好的。AngularJS能將你從以下的噩夢(mèng)中解脫出來(lái) AngularJS 表達(dá)式編輯AngularJS 表達(dá)式寫(xiě)在雙大括號(hào)內(nèi):{{ expression }}。[2] AngularJS 表達(dá)式把數(shù)據(jù)綁定到 HTML,這與ng-bind指令有異曲同工之妙。AngularJS 將在表達(dá)式書(shū)寫(xiě)的位置 輸出 數(shù)據(jù)。AngularJS 表達(dá)式很像JavaScript 表達(dá)式:它們可以包含文字、運(yùn)算符和變量。實(shí)例 {{ 5 + 5 }} 或 {{ firstName + + lastName }} 初步認(rèn)識(shí)了angular ,等待約下次~~~要一起么~~~ V-V 以上就是AngularJS 表達(dá)式的實(shí)例詳解的詳細(xì)內(nèi)容,html教程
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。