詳解AngularJS中ng-src指令的使用
前言
在日常開發(fā)工作中,有很多需求是在一個(gè)頁面上顯示一些圖片。有時(shí),圖片的地址路徑是由客戶端的腳本來設(shè)置(它有可能是從數(shù)據(jù)庫中獲取的)。
這是Angularjs的時(shí)代,當(dāng)我們想使用Angularjs來實(shí)現(xiàn)在頁面中展示圖片,我們會(huì)簡單使用: <img src=”path of image”>.
如果我們只考慮展示,毫無疑問它沒問題,但是在瀏覽器的控制臺(tái)中會(huì)顯示一個(gè) 404 (not found) 錯(cuò)誤。
為了解決這個(gè)問題,我們需要使用ng-Src
。在使用 ng-Src
之前,我想給你重現(xiàn)一下這個(gè)錯(cuò)誤是如何產(chǎn)生的
示例代碼如下:
示例源碼
Script.js
var testApp = angular .module("testModule", []) .controller("testController", function ($scope) { var animal = { name: "CAT", color: "White", picture: "/images/cat.jpg", }; $scope.animal = animal; });
Index.html
<html ng-app="testModule"> <head> <title></title> <script src="scripts/angular.min.js"></script> <script src="scripts/js/script.js"></script> </head> <body> <div ng-controller="testController"> Name: {{animal.name}} <br /> Color: {{animal.color}} <br /> <img src="{{animal.picture}}" /> </div> </body> </html>
在上述例子 中,有一個(gè) animal
類,它擁有三個(gè)屬性: Name
, Color
和Picture
,且已經(jīng)賦值了。使用模型綁定器,在頁面上我使用了這些屬性。 對(duì)于圖片,我使用了 <img>
HTML標(biāo)簽 。
然后運(yùn)行這個(gè)示例,效果如下:
然后打開瀏覽器的控制臺(tái),就會(huì)看到這個(gè)錯(cuò)誤。
無法加載資源:服務(wù)器響應(yīng)狀態(tài)為404 (Not Found)。
那么問題來了,為什么會(huì)出現(xiàn)這個(gè)錯(cuò)誤?應(yīng)該如何解決?
原因- 當(dāng)DOM 被解析時(shí),會(huì)嘗試從服務(wù)器獲取圖片。 這時(shí),src
屬性上的 Angularjs 綁定表達(dá)式 {{ model }}
還沒有執(zhí)行,所以就出現(xiàn)了 404 未找到的錯(cuò)誤。
解決方案- 解決的版本就是:在圖片中使用ng-Src
代替src
屬性,使用這個(gè)指令后,請求就只會(huì)在Angular執(zhí)行這個(gè)綁定表達(dá)式之后才會(huì)發(fā)出。
使用ng-Src的示例如下:
<html ng-app="testModule"> <head> <title></title> <script src="scripts/angular.min.js"></script> <script src="scripts/js/script.js"></script> </head> <body> <div ng-controller="testController"> Name: {{animal.name}} <br /> Color: {{animal.color}} <br /> <img ng-src="{{animal.picture}}" /> </div> </body> </html>
現(xiàn)在你再打開瀏覽器的控制臺(tái),就不會(huì)出現(xiàn):404 未找到, 這是因?yàn)槭褂昧?code>ng-Src 。
定義
ng-Src-
這個(gè)指令覆蓋了<img />
元素的src
原生屬性。
總結(jié)
以上就是這篇文章的全部內(nèi)容,希望大家能夠喜歡,如果有疑問可以留言交流。
相關(guān)文章
AngularJS框架中的雙向數(shù)據(jù)綁定機(jī)制詳解【減少需要重復(fù)的開發(fā)代碼量】
這篇文章主要介紹了AngularJS框架中的雙向數(shù)據(jù)綁定機(jī)制,結(jié)合實(shí)例形式分析了AngularJS雙向數(shù)據(jù)綁定機(jī)制的原理及實(shí)現(xiàn)方法,以及減少需要重復(fù)開發(fā)代碼量的優(yōu)勢,需要的朋友可以參考下2017-01-01使用JavaScript的AngularJS庫編寫hello world的方法
這篇文章主要介紹了使用JavaScript的AngularJS庫編寫hello world的方法,AngularJS是一款高人氣的JavaScript庫,需要的朋友可以參考下2015-06-06angularjs利用directive實(shí)現(xiàn)移動(dòng)端自定義軟鍵盤的示例
下面小編就為大家?guī)硪黄猘ngularJS利用directive實(shí)現(xiàn)移動(dòng)端自定義軟鍵盤的示例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-09-09Angular4學(xué)習(xí)筆記之新建項(xiàng)目的方法
本篇文章主要介紹了Angular4學(xué)習(xí)筆記之新建項(xiàng)目的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-07-07Angular 實(shí)現(xiàn)輸入框中顯示文章標(biāo)簽的實(shí)例代碼
這篇文章主要介紹了Angular 實(shí)現(xiàn)輸入框中顯示文章標(biāo)簽的實(shí)例代碼,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-11-11Angular實(shí)現(xiàn)搜索框及價(jià)格上下限功能
這篇文章主要為大家詳細(xì)介紹了Angular實(shí)現(xiàn)搜索框及價(jià)格上下限功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01