AngularJS入門教程之鏈接與圖片模板詳解
這一步,你會(huì)為手機(jī)列表的手機(jī)添加縮略圖以及一些鏈接,不過(guò)這些鏈接還不會(huì)起作用。接下來(lái)你會(huì)使用這些鏈接來(lái)分類顯示手機(jī)的額外信息。
請(qǐng)重置工作目錄:
git checkout -f step-6
現(xiàn)在你應(yīng)該能夠看到列表里面手機(jī)的圖片和鏈接了。
步驟5和步驟6之間最重要的不同在下面列出。你可以在GitHub里看到完整的差別。
數(shù)據(jù)
注意到現(xiàn)在phones.json文件包含了唯一標(biāo)識(shí)符和每一部手機(jī)的圖像鏈接。這些url現(xiàn)在指向app/img/phones/目錄。
app/phones/phones.json(樣例片段)
[ { ... "id": "motorola-defy-with-motoblur", "imageUrl": "img/phones/motorola-defy-with-motoblur.0.jpg", "name": "Motorola DEFY\u2122 with MOTOBLUR\u2122", ... }, ... ]
模板
app/index.html
... <ul class="phones"> <li ng-repeat="phone in phones | filter:query | orderBy:orderProp" class="thumbnail"> <a href="#/phones/{{phone.id}}" class="thumb"><img ng-src="{{phone.imageUrl}}"></a> <a href="#/phones/{{phone.id}}">{{phone.name}}</a> <p>{{phone.snippet}}</p> </li> </ul> ...
這些鏈接將來(lái)會(huì)指向每一部電話的詳細(xì)信息頁(yè)。不過(guò)現(xiàn)在為了產(chǎn)生這些鏈接,我們?cè)趆ref屬性里面使用我們?cè)缫咽煜さ碾p括號(hào)數(shù)據(jù)綁定。在步驟2,我們添加了{(lán){phone.name}}綁定作為元素內(nèi)容。在這一步,我們?cè)谠貙傩灾惺褂脅{phone.id}}綁定。
我們同樣為每條記錄添加手機(jī)圖片,只需要使用ngSrc指令代替<img>的src屬性標(biāo)簽就可以了。如果我們僅僅用一個(gè)正常src屬性來(lái)進(jìn)行綁定(<img class="diagram" src="{{phone.imageUrl}}">),瀏覽器會(huì)把AngularJS的{{ 表達(dá)式 }}標(biāo)記直接進(jìn)行字面解釋,并且發(fā)起一個(gè)向非法urlhttp://localhost:8000/app/{{phone.imageUrl}}的請(qǐng)求。因?yàn)闉g覽器載入頁(yè)面時(shí),同時(shí)也會(huì)請(qǐng)求載入圖片,AngularJS在頁(yè)面載入完畢時(shí)才開(kāi)始編譯——瀏覽器請(qǐng)求載入圖片時(shí){{phone.imageUrl}}還沒(méi)得到編譯!有了這個(gè)ngSrc指令會(huì)避免產(chǎn)生這種情況,使用ngSrc指令防止瀏覽器產(chǎn)生一個(gè)指向非法地址的請(qǐng)求。
測(cè)試
test/e2e/scenarios.js
... it('should render phone specific links', function() { input('query').enter('nexus'); element('.phones li a').click(); expect(browser().location().url()).toBe('/phones/nexus-s'); }); ...
我們添加了一個(gè)新的端到端測(cè)試來(lái)驗(yàn)證應(yīng)用為手機(jī)視圖產(chǎn)生了正確的鏈接,上面就是我們的實(shí)現(xiàn)。
你現(xiàn)在可以刷新你的瀏覽器,并且用端到端測(cè)試器來(lái)觀察測(cè)試的運(yùn)行,或者你可以在AngularJS服務(wù)器上運(yùn)行它們。
練習(xí)
將ng-src指令換成普通的src屬性。用像Firebug,Chrome Web Inspector這樣的工具,或者直接去看服務(wù)器的訪問(wèn)日志,你會(huì)發(fā)現(xiàn)你的應(yīng)用向/app/%7B%7Bphone.imageUrl%7D%7D(或者/app/{{phone.imageUrl}})發(fā)送了一個(gè)非法請(qǐng)求。
這個(gè)問(wèn)題是由于瀏覽器會(huì)在遇到img標(biāo)簽的時(shí)候立刻向還未得到編譯的URL地址發(fā)送一個(gè)請(qǐng)求,AngularJS只有在頁(yè)面載入完畢后才開(kāi)始編譯表達(dá)式從而得到正確的圖片URL地址。
總結(jié)
如今你已經(jīng)添加了手機(jī)圖片和鏈接,轉(zhuǎn)到步驟7,我們將學(xué)習(xí)AngularJS的布局模板以及AngularJS是如何輕易地為應(yīng)用提供多重視圖。
以上就是對(duì)AngularJS 鏈接與圖片模版的資料整理,后續(xù)繼續(xù)補(bǔ)充相關(guān)知識(shí),謝謝大家對(duì)本站的支持!
- AngularJs Understanding Angular Templates
- AngularJS ng-bind-template 指令詳解
- AngularJS延遲加載html template
- AngularJS實(shí)現(xiàn)根據(jù)變量改變動(dòng)態(tài)加載模板的方法
- AngularJS模板加載用法詳解
- AngularJS入門教程之更多模板詳解
- AngularJS入門教程之AngularJS 模板
- AngularJS入門教程之靜態(tài)模板詳解
- AngularJS 路由和模板實(shí)例及路由地址簡(jiǎn)化方法(必看)
- AngularJS初始化靜態(tài)模板詳解
- AngularJS入門教程(二):AngularJS模板
- AngularJS入門教程(一):靜態(tài)模板
- AngularJS ng-template寄宿方式用法分析
相關(guān)文章
AngularJS基于http請(qǐng)求實(shí)現(xiàn)下載php生成的excel文件功能示例
這篇文章主要介紹了AngularJS基于http請(qǐng)求實(shí)現(xiàn)下載php生成的excel文件功能,結(jié)合實(shí)例形式分析了AngularJS http請(qǐng)求及文件下載等相關(guān)操作技巧,需要的朋友可以參考下2018-01-01詳解angular ui-grid之過(guò)濾器設(shè)置
本篇文章主要介紹了詳解angular ui-grid之過(guò)濾器設(shè)置,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06詳解如何構(gòu)建Angular項(xiàng)目目錄結(jié)構(gòu)
本篇文章主要介紹了詳解如何構(gòu)建Angular項(xiàng)目目錄結(jié)構(gòu),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-07-07angularjs中判斷ng-repeat是否迭代完的實(shí)例
今天小編就為大家分享一篇angularjs中判斷ng-repeat是否迭代完的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-09-09angularjs實(shí)現(xiàn)的前端分頁(yè)控件示例
本篇文章主要介紹了angularjs實(shí)現(xiàn)的前端分頁(yè)控件示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-02-02AngularJS點(diǎn)擊添加樣式、點(diǎn)擊變色設(shè)置的實(shí)例代碼
本篇文章主要介紹了AngularJS點(diǎn)擊添加樣式、點(diǎn)擊變色設(shè)置的實(shí)例代碼,具有一定的參考價(jià)值,有興趣的可以了解一下2017-07-07在AngularJS框架中處理數(shù)據(jù)建模的方式解析
這篇文章主要介紹了在AngularJS框架中處理數(shù)據(jù)建模的方式,作者同時(shí)也對(duì)AngularJS使用過(guò)程中的一些"坑"作了介紹,需要的朋友可以參考下2016-03-03