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 相关文章推荐
jquery focus(fn),blur(fn)方法实例代码
Dec 16 Javascript
jquery中文乱码的多种解决方法
Jun 21 Javascript
一个简单的Node.js异步操作管理器分享
Apr 29 Javascript
jQuery实现点击表格单元格就可以编辑内容的方法【测试可用】
Aug 01 Javascript
利用node.js实现反向代理的方法详解
Jul 24 Javascript
js canvas实现简单的图像扩散效果
Jun 28 Javascript
在NPM发布自己造的轮子的方法步骤
Mar 09 Javascript
Vue函数式组件的应用实例详解
Aug 30 Javascript
layui复选框的全选与取消实现方法
Sep 02 Javascript
js实现购物车商品数量加减
Sep 21 Javascript
JS跨浏览器解析XML应用过程详解
Oct 16 Javascript
Vue实现多页签组件
Jan 14 Vue.js
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
PHP实现数字补零功能的2个函数介绍
2014/05/12 PHP
yii2中添加验证码的实现方法
2016/01/09 PHP
几行代码轻松实现PHP文件打包下载zip
2017/03/01 PHP
asp.net和asp下ACCESS的参数化查询
2008/06/11 Javascript
JQery 渐变图片导航效果代码 漂亮
2010/01/01 Javascript
Dom 是什么的详细说明
2010/10/25 Javascript
jQuery为iframe的body添加click事件的实现代码
2011/04/07 Javascript
在javascript中对于DOM的加强
2013/04/11 Javascript
JavaScript中的对象序列化介绍
2014/12/30 Javascript
jquery append 动态添加的元素事件on 不起作用的解决方案
2015/07/30 Javascript
分享两段简单的JS代码防止SQL注入
2016/04/12 Javascript
利用原生js和jQuery实现单选框的勾选和取消操作的方法
2016/09/04 Javascript
如何使用Bootstrap创建表单
2017/03/29 Javascript
JS中定位 position 的使用实例代码
2017/08/06 Javascript
js实现图片放大展示效果
2017/08/30 Javascript
vue.js移动数组位置,同时更新视图的方法
2018/03/08 Javascript
vue加载完成后的回调函数方法
2018/09/07 Javascript
JS获取月的第几周和年的第几周实例代码
2018/12/05 Javascript
Vue.js 无限滚动列表性能优化方案
2019/12/02 Javascript
jQuery实现html可联动的百分比进度条
2020/03/26 jQuery
手写Vue源码之数据劫持示例详解
2021/01/04 Vue.js
python3使用pyqt5制作一个超简单浏览器的实例
2017/10/19 Python
python装饰器实现对异常代码出现进行自动监控的实现方法
2020/09/15 Python
css3实现的下拉菜单效果示例
2014/01/22 HTML / CSS
什么是CSS3 HSLA色彩模式?HSLA模拟渐变色条
2016/04/26 HTML / CSS
Omio俄罗斯:一次搜索公共汽车、火车和飞机的机票
2018/11/17 全球购物
护理自荐信范文
2013/10/05 职场文书
交通事故检查书范文
2014/01/30 职场文书
大学生创业项目方案
2014/03/08 职场文书
最新结婚典礼主持词
2014/03/14 职场文书
安全生产计划书
2014/05/04 职场文书
2014领导干部四风问题查摆思想汇报
2014/09/13 职场文书
德能勤绩廉个人总结
2015/02/14 职场文书
基于python的matplotlib制作双Y轴图
2021/04/20 Python
Spring boot应用启动后首次访问很慢的解决方案
2021/06/23 Java/Android
详解Golang如何优雅的终止一个服务
2022/03/21 Golang