详解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实现select选择框内容左右移动代码分享
Nov 21 Javascript
jQuery Select下拉框操作小结(推荐)
Jul 22 Javascript
js将table的每个td的内容自动赋值给其title属性的方法
Oct 13 Javascript
浅谈JS中String()与 .toString()的区别
Oct 20 Javascript
JS实现微信摇一摇原理解析
Jul 22 Javascript
JavaScript 完成注册页面表单校验的实例
Aug 19 Javascript
使用JavaScript中的lodash编写双色球效果
Jun 24 Javascript
100行代码实现一个vue分页组功能
Nov 06 Javascript
js核心基础之闭包的应用实例分析
May 11 Javascript
vue 实现 rem 布局或vw 布局的方法
Nov 13 Javascript
vue项目中使用多选框的实例代码
Jul 22 Javascript
JavaScript中如何调用Java方法
Sep 16 Javascript
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
PHP4实际应用经验篇(1)
2006/10/09 PHP
MongoDB在PHP中的常用操作小结
2014/02/20 PHP
Linux下手动编译安装PHP扩展的例子分享
2014/07/15 PHP
将CMYK颜色值和RGB颜色相互转换的PHP代码
2014/07/28 PHP
PHP Hash算法:Times33算法代码实例
2015/05/13 PHP
php 三元运算符实例详细介绍
2016/12/15 PHP
用PHP的socket实现客户端到服务端的通信实例详解
2017/02/04 PHP
tp5修改(实现即点即改)
2019/10/18 PHP
JS提交并解析后台返回的XML的代码
2008/11/03 Javascript
jQuery 核心函数以及jQuery对象
2010/03/23 Javascript
js中eval详解
2012/03/30 Javascript
js获取元素到文档区域document的(横向、纵向)坐标的两种方法
2013/05/17 Javascript
js换图片效果可进行定时操作
2014/06/09 Javascript
禁止iframe页面的所有js脚本如alert及弹出窗口等
2014/09/03 Javascript
JavaScript利用正则表达式替换字符串中的内容
2016/12/12 Javascript
javaScript中封装的各种写法示例(推荐)
2017/07/03 Javascript
Vue实现兄弟组件间的联动效果
2020/01/21 Javascript
JS实现简易计算器
2020/02/14 Javascript
微信小程序多列表渲染数据开关互不影响的实现
2020/06/05 Javascript
vue scroll滚动判断的实现(是否滚动到底部、滚动方向、滚动节流、获取滚动区域dom元素)
2020/06/11 Javascript
详解js中的原型,原型对象,原型链
2020/07/16 Javascript
微信小程序实现点击生成随机验证码
2020/09/09 Javascript
Python写的服务监控程序实例
2015/01/31 Python
Python 包含汉字的文件读写之每行末尾加上特定字符
2016/12/12 Python
Django使用HttpResponse返回图片并显示的方法
2018/05/22 Python
Python实现的网页截图功能【PyQt4与selenium组件】
2018/07/12 Python
深入浅析Python代码规范性检测
2020/07/31 Python
Django filter动态过滤与排序实现过程解析
2020/11/26 Python
python软件测试Jmeter性能测试JDBC Request(结合数据库)的使用详解
2021/01/26 Python
史蒂夫·马登加拿大官网:Steve Madden加拿大
2017/11/18 全球购物
经济实惠的豪华家具:My-Furniture
2019/03/12 全球购物
装饰公司活动策划方案
2014/08/23 职场文书
2014财务人员自我评价范文
2014/09/21 职场文书
务虚会发言材料
2014/12/25 职场文书
2015年南京大屠杀纪念日活动总结
2015/03/24 职场文书
Python与C++中梯度方向直方图的实现
2022/03/17 Python