详解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 相关文章推荐
由prototype_1.3.1进入javascript殿堂-类的初探
Nov 06 Javascript
javascript性能优化之事件委托实例详解
Dec 12 Javascript
详解数组Array.sort()排序的方法
May 09 Javascript
js 显示日期时间的实例(时间过一秒加1)
Oct 25 Javascript
微信小程序模拟cookie的实现
Jun 20 Javascript
对vux点击事件的优化详解
Aug 28 Javascript
vue做移动端适配最佳解决方案(亲测有效)
Sep 04 Javascript
详解ESLint在Vue中的使用小结
Oct 15 Javascript
js中的reduce()函数讲解
Jan 18 Javascript
js贪心算法 钱币找零问题代码实例
Sep 11 Javascript
vue-以文件流-blob-的形式-下载-导出文件操作
Aug 07 Javascript
jquery实现抽奖功能
Oct 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如何实现Socket服务器
2015/09/23 PHP
php处理静态页面:页面设置缓存时间实例
2017/06/22 PHP
浅谈PHP中如何实现Hook机制
2017/11/14 PHP
javascript新手语法小结
2008/06/15 Javascript
Javascript实现重力弹跳拖拽运动效果示例
2013/06/28 Javascript
js修改原型的属性使用介绍
2014/01/26 Javascript
JS实现的一个简单的Autocomplete自动完成例子
2014/04/16 Javascript
Nodejs进程管理模块forever详解
2014/06/01 NodeJs
JS面向对象基础讲解(工厂模式、构造函数模式、原型模式、混合模式、动态原型模式)
2014/08/16 Javascript
详解页面滚动值scrollTop在FireFox与Chrome浏览器间的兼容问题
2015/12/03 Javascript
jQuery中fadein与fadeout方法用法示例
2016/09/16 Javascript
jQuery右下角悬浮广告实例
2016/10/17 Javascript
探究Vue.js 2.0新增的虚拟DOM
2016/10/20 Javascript
详解nodeJS中读写文件方法的区别
2017/03/06 NodeJs
vue 实现剪裁图片并上传服务器功能
2018/03/01 Javascript
Mint-UI时间组件起始时间问题及时间插件使用
2018/08/20 Javascript
vue实现弹框遮罩点击其他区域弹框关闭及v-if与v-show的区别介绍
2018/09/29 Javascript
mpvue将vue项目转换为小程序
2018/09/30 Javascript
vxe-table vue table 表格组件功能
2019/05/26 Javascript
jQuery实现增删改查
2020/12/22 jQuery
python中的函数用法入门教程
2014/09/02 Python
python实现斐波那契数列的方法示例
2017/01/12 Python
Python模块的加载讲解
2019/01/15 Python
Python集中化管理平台Ansible介绍与YAML简介
2019/06/12 Python
Python自动化完成tb喵币任务的操作方法
2019/10/30 Python
python 爬取古诗文存入mysql数据库的方法
2020/01/08 Python
如何用Python绘制3D柱形图
2020/09/16 Python
Rockport乐步美国官网:风靡美国的白宫鞋
2016/11/24 全球购物
Crabtree & Evelyn英国官网:瑰珀翠护手霜、香水、沐浴和身体护理
2018/04/26 全球购物
Zooplus罗马尼亚:宠物食品和配件
2019/11/02 全球购物
销售经理工作职责
2014/02/03 职场文书
单位实习鉴定评语
2015/01/04 职场文书
放射科岗位职责
2015/02/14 职场文书
2015年保洁工作总结范文
2015/04/28 职场文书
MySQL修炼之联结与集合浅析
2021/10/05 MySQL
sql查询语句之平均分、最高最低分及排序语句
2022/05/30 MySQL