详解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 常见学习网站与参考书
Nov 09 Javascript
Javascript 鼠标移动上去小三角形滑块缓慢跟随效果
Apr 26 Javascript
基于Bootstrap实现的下拉菜单手机端不能选择菜单项的原因附解决办法
Jul 22 Javascript
自动化测试读写64位操作系统的注册表
Aug 15 Javascript
最常见的左侧分类菜单栏jQuery实现代码
Nov 28 Javascript
详解Vue的computed(计算属性)使用实例之TodoList
Aug 07 Javascript
深入理解ES6学习笔记之块级作用域绑定
Aug 19 Javascript
jQuery 改变P标签文本值方法
Feb 24 jQuery
微信小程序利用canvas 绘制幸运大转盘功能
Jul 06 Javascript
element-ui循环显示radio控件信息的方法
Aug 24 Javascript
vue3.0 加载json的方法(非ajax)
Oct 26 Javascript
Vue3+elementui plus创建项目的方法
Dec 01 Vue.js
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代码
2007/03/03 PHP
PHP日期时间函数的高级应用技巧
2009/05/16 PHP
php HandlerSocket的使用
2011/05/02 PHP
php文件上传简单实现方法
2015/01/24 PHP
Laravel 5.3 学习笔记之 错误&amp;日志
2016/08/28 PHP
PHP十六进制颜色随机生成器功能示例
2017/07/24 PHP
thinkphp5框架路由原理与用法详解
2020/02/11 PHP
去掉gridPanel表头全选框的小例子
2013/07/18 Javascript
只需一行代码,轻松实现一个在线编辑器
2013/11/12 Javascript
设置jsf的选择框h:selectOneMenu为不可编辑状态的方法
2014/01/07 Javascript
使用jQuery实现的掷色子游戏动画效果
2014/03/14 Javascript
jQuery实现鼠标经过图片预览大图效果
2014/04/10 Javascript
js 调用百度地图api并在地图上进行打点添加标注
2014/05/13 Javascript
jQuery在页面加载时动态修改图片尺寸的方法
2015/03/20 Javascript
用nodejs实现json和jsonp服务的方法
2017/08/25 NodeJs
JS动态添加的div点击跳转到另一页面实现代码
2017/09/30 Javascript
Vue 与 Vuex 的第一次接触遇到的坑
2018/08/16 Javascript
vue自定义树状结构图的实现方法
2020/10/18 Javascript
js面向对象封装级联下拉菜单列表的实现步骤
2021/02/08 Javascript
[03:01]DOTA2英雄基础教程 露娜
2014/01/07 DOTA
Python解决走迷宫问题算法示例
2018/07/27 Python
使用Python批量修改文件名的代码实例
2019/01/24 Python
python中时间模块的基本使用教程
2019/05/14 Python
Django-Model数据库操作(增删改查、连表结构)详解
2019/07/17 Python
最新Python idle下载、安装与使用教程图文详解
2020/11/28 Python
使用CSS3制作倾斜导航条和毛玻璃效果
2017/09/12 HTML / CSS
英国在线自行车商店:Evans Cycles
2016/09/26 全球购物
Otel.com:折扣酒店预订
2017/08/24 全球购物
美国在线纱线商店:Darn Good Yarn
2019/03/20 全球购物
SQL SERVER面试资料
2013/03/30 面试题
上课玩手机检讨书
2014/02/08 职场文书
小学毕业演讲稿
2014/04/25 职场文书
2014年人事专员工作总结
2014/11/19 职场文书
2015年消费者权益日活动总结
2015/02/09 职场文书
MongoDB数据库常用的10条操作命令
2021/06/18 MongoDB
SQL Server使用PIVOT与unPIVOT实现行列转换
2022/05/25 SQL Server