详解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 相关文章推荐
javascript函数中参数传递问题示例探讨
Jul 31 Javascript
JavaScript清空数组元素的两种方法简单比较
Jul 10 Javascript
JS中的二叉树遍历详解
Mar 18 Javascript
jQuery实现点击行选中或取消CheckBox的方法
Aug 01 Javascript
AngularJS基于ngInfiniteScroll实现下拉滚动加载的方法
Dec 14 Javascript
bootstrap table 数据表格行内修改的实现代码
Feb 13 Javascript
JS中图片压缩的方法小结
Nov 14 Javascript
vue axios 给生产环境和发布环境配置不同的接口地址(推荐)
May 08 Javascript
jquery ajax加载数据前台渲染方式 不用for遍历的方法
Aug 09 jQuery
Vue-cli3简单使用(图文步骤)
Apr 30 Javascript
什么时候不能在 Node.js 中使用 Lock Files
Jun 24 Javascript
详解vue3.0 的 Composition API 的一种使用方法
Oct 26 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
php 取得瑞年与平年的天数的代码
2009/08/10 PHP
PHP递归复制、移动目录的自定义函数分享
2014/11/18 PHP
typecho插件编写教程(一):Hello World
2015/05/28 PHP
php gd等比例缩放压缩图片函数
2016/06/12 PHP
THINKPHP5分页数据对象处理过程解析
2020/10/28 PHP
防止动态加载JavaScript引起的内存泄漏问题
2009/10/08 Javascript
jQuery 自动增长的文本输入框实现代码
2010/04/02 Javascript
javascript下对于事件、事件流、事件触发的顺序随便说说
2010/07/17 Javascript
非常漂亮的JS+CSS图片幻灯切换特效
2013/11/20 Javascript
js读写cookie实现一个底部广告浮层效果的两种方法
2013/12/29 Javascript
JavaScript获取Url里的参数
2014/12/18 Javascript
jQuery+PHP+MySQL二级联动下拉菜单实例讲解
2015/10/27 Javascript
探索Vue.js component内容实现
2016/11/03 Javascript
有关JS中的0,null,undefined,[],{},'''''''',false之间的关系
2017/02/14 Javascript
ionic选择多张图片上传的示例代码
2017/10/10 Javascript
js 判断一个数字是不是2的n次方幂的实例
2017/11/26 Javascript
用最少的JS代码写出贪吃蛇游戏
2018/01/12 Javascript
微信小程序中换行空格(多个空格)写法详解
2018/07/10 Javascript
Vue列表渲染的示例代码
2018/11/01 Javascript
Vue.js的动态组件模板的实现
2018/11/26 Javascript
python将字典内容存入mysql实例代码
2018/01/18 Python
对PyTorch torch.stack的实例讲解
2018/07/30 Python
python3在同一行内输入n个数并用列表保存的例子
2019/07/20 Python
Django 自动生成api接口文档教程
2019/11/19 Python
python 利用turtle库绘制笑脸和哭脸的例子
2019/11/23 Python
python 的numpy库中的mean()函数用法介绍
2020/03/03 Python
CSS Grid布局教程之什么是网格布局
2014/12/30 HTML / CSS
HTML5本地存储之Web Storage详解
2016/07/04 HTML / CSS
俄罗斯隐形眼镜和眼镜在线商店:Cronos
2020/06/02 全球购物
岗位职责范本
2013/11/23 职场文书
报关专员求职信范文
2014/02/22 职场文书
乡镇保密工作责任书
2014/07/28 职场文书
教师节标语大全
2014/10/07 职场文书
2014年居委会工作总结
2014/12/09 职场文书
eval(cmd)与eval($cmd)的区别与联系
2021/07/07 PHP