AngularJS入門教程之鏈接與圖片模板詳解
這一步,你會為手機列表的手機添加縮略圖以及一些鏈接,不過這些鏈接還不會起作用。接下來你會使用這些鏈接來分類顯示手機的額外信息。
請重置工作目錄:
git checkout -f step-6
現(xiàn)在你應(yīng)該能夠看到列表里面手機的圖片和鏈接了。
步驟5和步驟6之間最重要的不同在下面列出。你可以在GitHub里看到完整的差別。
數(shù)據(jù)
注意到現(xiàn)在phones.json文件包含了唯一標(biāo)識符和每一部手機的圖像鏈接。這些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>
...
這些鏈接將來會指向每一部電話的詳細(xì)信息頁。不過現(xiàn)在為了產(chǎn)生這些鏈接,我們在href屬性里面使用我們早已熟悉的雙括號數(shù)據(jù)綁定。在步驟2,我們添加了{(lán){phone.name}}綁定作為元素內(nèi)容。在這一步,我們在元素屬性中使用{{phone.id}}綁定。
我們同樣為每條記錄添加手機圖片,只需要使用ngSrc指令代替<img>的src屬性標(biāo)簽就可以了。如果我們僅僅用一個正常src屬性來進行綁定(<img class="diagram" src="{{phone.imageUrl}}">),瀏覽器會把AngularJS的{{ 表達式 }}標(biāo)記直接進行字面解釋,并且發(fā)起一個向非法urlhttp://localhost:8000/app/{{phone.imageUrl}}的請求。因為瀏覽器載入頁面時,同時也會請求載入圖片,AngularJS在頁面載入完畢時才開始編譯——瀏覽器請求載入圖片時{{phone.imageUrl}}還沒得到編譯!有了這個ngSrc指令會避免產(chǎn)生這種情況,使用ngSrc指令防止瀏覽器產(chǎn)生一個指向非法地址的請求。
測試
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');
});
...
我們添加了一個新的端到端測試來驗證應(yīng)用為手機視圖產(chǎn)生了正確的鏈接,上面就是我們的實現(xiàn)。
你現(xiàn)在可以刷新你的瀏覽器,并且用端到端測試器來觀察測試的運行,或者你可以在AngularJS服務(wù)器上運行它們。
練習(xí)
將ng-src指令換成普通的src屬性。用像Firebug,Chrome Web Inspector這樣的工具,或者直接去看服務(wù)器的訪問日志,你會發(fā)現(xiàn)你的應(yīng)用向/app/%7B%7Bphone.imageUrl%7D%7D(或者/app/{{phone.imageUrl}})發(fā)送了一個非法請求。
這個問題是由于瀏覽器會在遇到img標(biāo)簽的時候立刻向還未得到編譯的URL地址發(fā)送一個請求,AngularJS只有在頁面載入完畢后才開始編譯表達式從而得到正確的圖片URL地址。
總結(jié)
如今你已經(jīng)添加了手機圖片和鏈接,轉(zhuǎn)到步驟7,我們將學(xué)習(xí)AngularJS的布局模板以及AngularJS是如何輕易地為應(yīng)用提供多重視圖。
以上就是對AngularJS 鏈接與圖片模版的資料整理,后續(xù)繼續(xù)補充相關(guān)知識,謝謝大家對本站的支持!
- AngularJs Understanding Angular Templates
- AngularJS ng-bind-template 指令詳解
- AngularJS延遲加載html template
- AngularJS實現(xiàn)根據(jù)變量改變動態(tài)加載模板的方法
- AngularJS模板加載用法詳解
- AngularJS入門教程之更多模板詳解
- AngularJS入門教程之AngularJS 模板
- AngularJS入門教程之靜態(tài)模板詳解
- AngularJS 路由和模板實例及路由地址簡化方法(必看)
- AngularJS初始化靜態(tài)模板詳解
- AngularJS入門教程(二):AngularJS模板
- AngularJS入門教程(一):靜態(tài)模板
- AngularJS ng-template寄宿方式用法分析
相關(guān)文章
詳解Angular4中路由Router類的跳轉(zhuǎn)navigate
這篇文章主要介紹了詳解Angular4中路由Router類的跳轉(zhuǎn)navigate,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-06-06
使用Angular CLI進行Build(構(gòu)建)和Serve詳解
這篇文章主要介紹了使用Angular CLI進行Build(構(gòu)建)和Serve詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-03-03
Angularjs實現(xiàn)mvvm式的選項卡示例代碼
每位Web開發(fā)者應(yīng)該都知道,選項卡是現(xiàn)代web網(wǎng)頁中最常用的效果之一,所以本文重點是用angularjs這個非常火mvvm框架,實現(xiàn)選項卡效果。有需要的朋友們可以參考借鑒,下面來一起看看吧。2016-09-09
AngularJS基礎(chǔ) ng-non-bindable 指令詳細(xì)介紹
本文主要講解AngularJS ng-non-bindable 指令,這里幫大家整理了ng-non-bindable指令的基本知識資料,有需要的小伙伴可以參考下2016-08-08
AngularJS框架的ng-app指令與自動加載實現(xiàn)方法分析
這篇文章主要介紹了AngularJS框架的ng-app指令與自動加載實現(xiàn)方法,結(jié)合實例形式分析了ng-app指令的功能及自動加載機制的實現(xiàn)技巧,需要的朋友可以參考下2017-01-01
解決angularjs前后端分離調(diào)用接口傳遞中文時中文亂碼的問題
今天小編就為大家分享一篇解決angularjs前后端分離調(diào)用接口傳遞中文時中文亂碼的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-08-08
AngularJS通過ng-Img-Crop實現(xiàn)頭像截取的示例
本篇文章主要介紹了AngularJS通過ng-Img-Crop實現(xiàn)頭像截取的示例,具有一定的參考價值,有興趣的可以了解一下2017-08-08

