详解AngularJS中ng-src指令的使用


Posted in Javascript onSeptember 07, 2016

前言

在日常开发工作中,有很多需求是在一个页面上显示一些图片。有时,图片的地址路径是由客户端的脚本来设置(它有可能是从数据库中获取的)。

这是Angularjs的时代,当我们想使用Angularjs来实现在页面中展示图片,我们会简单使用: <img src=”path of image”>.

如果我们只考虑展示,毫无疑问它没问题,但是在浏览器的控制台中会显示一个 404 (not found) 错误。

详解AngularJS中ng-src指令的使用

为了解决这个问题,我们需要使用ng-Src。在使用 ng-Src之前,我想给你重现一下这个错误是如何产生的

示例代码如下:

示例源码

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>

在上述例子 中,有一个 animal 类,它拥有三个属性: Name, Color Picture,且已经赋值了。使用模型绑定器,在页面上我使用了这些属性。 对于图片,我使用了 <img> HTML标签 。

然后运行这个示例,效果如下:

详解AngularJS中ng-src指令的使用 

然后打开浏览器的控制台,就会看到这个错误。

无法加载资源:服务器响应状态为404 (Not Found)。

那么问题来了,为什么会出现这个错误?应该如何解决?

原因- 当DOM 被解析时,会尝试从服务器获取图片。 这时,src属性上的 Angularjs 绑定表达式 {{ model }}还没有执行,所以就出现了  404 未找到的错误。

解决方案- 解决的版本就是:在图片中使用ng-Src代替src属性,使用这个指令后,请求就只会在Angular执行这个绑定表达式之后才会发出。

使用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>

现在你再打开浏览器的控制台,就不会出现:404 未找到, 这是因为使用了ng-Src

定义

ng-Src- 这个指令覆盖了<img />元素的src原生属性。

总结

以上就是这篇文章的全部内容,希望大家能够喜欢,如果有疑问可以留言交流。

Javascript 相关文章推荐
jquery动态加载js/css文件方法(自写小函数)
Oct 11 Javascript
Javascript动态创建表格及删除行列的方法
May 15 Javascript
使用AngularJS实现表单向导的方法
Jun 19 Javascript
12个超实用的JQuery代码片段
Nov 02 Javascript
基于Bootstrap重置输入框内容按钮插件
May 12 Javascript
微信小程序 删除项目工程实现步骤
Nov 10 Javascript
VueJs与ReactJS和AngularJS的异同点
Dec 12 Javascript
浅谈js获取ModelAndView值的问题
Mar 28 Javascript
JS实现图片切换效果
Nov 17 Javascript
原生js实现可兼容PC和移动端的拖动滑块功能详解【测试可用】
Aug 15 Javascript
jQuery使用jsonp实现百度搜索的示例代码
Jul 08 jQuery
jQuery实现本地存储
Dec 22 jQuery
AngularJS实现按钮提示与点击变色效果
Sep 07 #Javascript
JS实现简单易用的手机端浮动窗口显示效果
Sep 07 #Javascript
利用Angularjs实现幻灯片效果
Sep 07 #Javascript
轻松掌握JavaScript状态模式
Sep 07 #Javascript
JS简单实现tab切换效果的多窗口显示功能
Sep 07 #Javascript
JS实现的幻灯片切换显示效果
Sep 07 #Javascript
javascript宿主对象之window.navigator详解
Sep 07 #Javascript
You might like
php中处理模拟rewrite 效果
2006/12/09 PHP
PHP字符编码问题之GB2312 VS UTF-8解决方法
2011/06/23 PHP
PHP连接MySQL数据库并以json格式输出
2018/05/21 PHP
Javascript下的keyCode键码值表
2007/04/10 Javascript
js+css 实现遮罩居中弹出层(随浏览器窗口滚动条滚动)
2013/12/11 Javascript
JavaScript设计模式经典之命令模式
2016/02/24 Javascript
浅谈javascript中的call、apply、bind
2016/03/06 Javascript
jQuery EasyUI提交表单验证
2016/07/19 Javascript
JavaScript定时器制作弹窗小广告
2017/02/05 Javascript
JavaScript面向对象精要(下部)
2017/09/12 Javascript
mui back 返回刷新页面的实例
2017/12/06 Javascript
JavaScript解决浮点数计算不准确问题的方法分析
2018/07/09 Javascript
vue+iview/elementUi实现城市多选
2019/03/28 Javascript
vuex实现数据状态持久化
2019/11/11 Javascript
[33:23]VG vs Pain 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
[52:39]完美世界DOTA2联赛PWL S3 CPG vs Forest 第一场 12.16
2020/12/17 DOTA
python socket 超时设置 errno 10054
2014/07/01 Python
python儿童学游戏编程知识点总结
2019/06/03 Python
在TensorFlow中屏蔽warning的方式
2020/02/04 Python
Python线程协作threading.Condition实现过程解析
2020/03/12 Python
使用Html5实现异步上传文件,支持跨域,带有上传进度条
2016/09/17 HTML / CSS
HTML5实现应用程序缓存(Application Cache)
2020/06/16 HTML / CSS
NFL欧洲商店(德国):NFL Europe Shop DE
2018/11/03 全球购物
主键(Primary Key)约束和唯一性(UNIQUE)约束的区别
2013/05/29 面试题
Python使用openpyxl复制整张sheet
2021/03/24 Python
家居设计专业个人自荐信范文
2013/11/26 职场文书
业绩考核岗位职责
2014/02/01 职场文书
工程资料员岗位职责
2014/03/10 职场文书
奠基仪式策划方案
2014/05/15 职场文书
中层干部培训方案
2014/06/16 职场文书
学校领导干部民主生活会整改方案
2014/09/29 职场文书
政府四风问题整改措施
2014/10/04 职场文书
2015年双拥工作总结
2015/04/08 职场文书
2015年宣传思想工作总结
2015/05/22 职场文书
Python爬虫入门案例之爬取二手房源数据
2021/10/16 Python
基于MySql验证的vsftpd虚拟用户
2021/11/07 MySQL