angular 数据绑定之[]和{{}}的区别


Posted in Javascript onSeptember 25, 2018

问题描述

在学习angular时,在示例代码写到加载图片时,书中推荐使用单向数据绑定符号[]来绑定图片的路径,然后双花括号的写法是错的。

尝试

首先,按书中推荐的写法:

<img [src]="imgUrl" />

这里就省略了控制器中定义变量的代码。

然后又按书中说错误的方式进行尝试:

<img src="{{ imgUrl }}" />

最后的测试结果发现两种写法都可以正常加载图片,并没有出现将{{ imgUrl }}解析成字符串的问题。

重读

发现没有达到预期的效果,所以就又重新看了一下书中是怎么说的:

如果浏览器在Angular运行起来之前就加载了这段模板,就会尝试以字符串{{ imgUrl }}为Url来加载图片,这当然会得到一个“404 Not found”错误。在Angular运行起来之前,浏览器会在页面显示一个破损的图像。

仔细读了上面的原文,发现出现错误是有条件的。那什么时候才会触发上面的错误呢?

猜测

联想到angularjs中的双花括号,与angular类似,之前在使用的时候就会出现变量没有被正常加载的问题,导致页面直接显示{{...}}的现象。当时出现这种问题是在加载缓慢,或者重复刷新。原因就是模板加载完成了,但是angularjs并没有加载完全。

所以,我就大胆猜测,当angular加载缓慢的时候,{{}}的写法就会出现问题。

(这里笔者经过几次尝试,并没有出现问题。如果有人尝试出,欢迎指正。)

两种绑定的区别

使用[]和{{}}的区别并不大,两者都是一种angular中的单向绑定实现方式,却别就是使用{{}}的形式,会将括号中的表达式解析完成后,再将结果转换成字符串。而[]不会转换成字符串。

总结

有些问题可能以我们目前的水平并不能很好的解释,但是做出一个令自己信服的猜测还是很容易的。哪怕这个猜测在未来的某一天被证实是错误的,那只会是你新的积累的开始。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
HTML中的setCapture和releaseCapture使用介绍
Mar 21 Javascript
JS 实现点击a标签的时候让其背景更换
Oct 15 Javascript
jQuery实现回车键(Enter)切换文本框焦点的代码实例
May 05 Javascript
JavaScript判断变量是对象还是数组的方法
Aug 28 Javascript
PHP捕捉异常中断的方法
Oct 24 Javascript
vue自定义指令实现v-tap插件
Nov 03 Javascript
图片懒加载插件实例分享(含解析)
Jan 09 Javascript
AngularJS报错$apply already in progress的解决方法分析
Jan 30 Javascript
jQuery Easyui Treegrid实现显示checkbox功能
Aug 08 jQuery
vue实现通讯录功能
Jul 14 Javascript
bootstrap table表格插件之服务器端分页实例代码
Sep 12 Javascript
详解ES6新增字符串扩张方法includes()、startsWith()、endsWith()
May 12 Javascript
Vue高版本中一些新特性的使用详解
Sep 25 #Javascript
axios全局注册,设置token,以及全局设置url请求网段的方法
Sep 25 #Javascript
vue实现多个元素或多个组件之间动画效果
Sep 25 #Javascript
vue 音乐App QQ音乐搜索列表最新接口跨域设置方法
Sep 25 #Javascript
Vue页面跳转动画效果的实现方法
Sep 23 #Javascript
vue解决弹出蒙层滑动穿透问题的方法
Sep 22 #Javascript
vue如何解决循环引用组件报错的问题
Sep 22 #Javascript
You might like
在VS2008中编译MYSQL5.1.48的方法
2010/07/03 PHP
linux下使用ThinkPHP需要注意大小写导致的问题
2011/08/02 PHP
PHP对接微信公众平台消息接口开发流程教程
2014/03/25 PHP
Javascript &amp; DHTML 实例编程(教程)DOM基础和基本API
2007/06/02 Javascript
Prototype 学习 工具函数学习($方法)
2009/07/12 Javascript
jQuery 表单验证扩展代码(一)
2010/10/11 Javascript
用JQuery实现表格隔行变色和突出显示当前行的代码
2012/02/10 Javascript
js+html+css实现鼠标移动div实例
2013/01/30 Javascript
js异常捕获方法介绍
2013/04/10 Javascript
Jquery 例外被抛出且未被接住原因介绍
2013/09/04 Javascript
jquery动态添加元素事件失效问题解决方法
2014/05/23 Javascript
JS+DIV+CSS排版布局实现美观的选项卡效果
2015/10/10 Javascript
JS生成不重复的随机数组的简单实例
2016/07/10 Javascript
jQuery可见性过滤选择器用法示例
2016/09/09 Javascript
JavaScript表单即时验证 验证不成功不能提交
2017/08/31 Javascript
为jquery的ajax请求添加超时timeout时间的操作方法
2018/09/04 jQuery
JavaScript进阶(四)原型与原型链用法实例分析
2020/05/09 Javascript
vscode 调试 node.js的方法步骤
2020/09/15 Javascript
vue自定义树状结构图的实现方法
2020/10/18 Javascript
Python xlrd读取excel日期类型的2种方法
2015/04/28 Python
Python实现Youku视频批量下载功能
2017/03/14 Python
python3实现逐字输出的方法
2019/01/23 Python
django admin组件使用方法详解
2019/07/19 Python
Pycharm激活方法及详细教程(详细且实用)
2020/05/12 Python
美国男士和女士奢侈品折扣手表购物网站:Certified Watch Store
2018/06/13 全球购物
高校辅导员推荐信范文
2013/12/25 职场文书
幼儿园保教管理制度
2014/02/03 职场文书
公务员保密承诺书
2014/03/27 职场文书
公司董事长岗位职责
2014/06/08 职场文书
品牌推广活动策划方案
2014/08/19 职场文书
感恩节寄语2015
2015/03/24 职场文书
民事起诉书范本
2015/05/19 职场文书
暑期社会实践新闻稿
2015/07/17 职场文书
小学六年级毕业感言
2015/07/30 职场文书
详解redis分布式锁的这些坑
2021/05/19 Redis
Python学习之包与模块详解
2022/03/19 Python