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 相关文章推荐
JavaScript初学者需要了解10个小技巧
Aug 25 Javascript
jquerydom对象的事件隐藏显示和对象数组示例
Dec 10 Javascript
jquery获取复选框被选中的值
Mar 22 Javascript
jQuery鼠标经过方形图片切换成圆边效果代码分享
Aug 20 Javascript
微信小程序开发之实现选项卡(窗口顶部TabBar)页面切换
Nov 25 Javascript
axios学习教程全攻略
Mar 26 Javascript
react-router中的属性详解
Jun 01 Javascript
jQuery+vue.js实现的九宫格拼图游戏完整实例【附源码下载】
Sep 12 jQuery
vue实现文章内容过长点击阅读全文功能的实例
Dec 28 Javascript
详解React中setState回调函数
Jun 14 Javascript
使用Vue-Awesome-Swiper实现旋转叠加轮播效果&amp;平移轮播效果
Aug 16 Javascript
详解JavaScript的计时器和按钮效果设置
Feb 18 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
php小经验:解析preg_match与preg_match_all 函数
2013/06/29 PHP
Win2003+apache+PHP+SqlServer2008 配置生产环境
2014/07/29 PHP
分享一则PHP定义函数代码
2015/02/26 PHP
使用PHP实现生成HTML静态页面
2015/11/18 PHP
PHP Ajax JavaScript Json获取天气信息实现代码
2016/08/17 PHP
Docker配置PHP开发环境教程
2016/12/21 PHP
ThinkPHP5.0框架验证码功能实现方法【基于第三方扩展包】
2019/03/11 PHP
javascript定义函数的方法
2010/12/06 Javascript
js控制input输入字符解析
2013/12/27 Javascript
jquery实现弹出层遮罩效果的简单实例
2014/03/03 Javascript
Jquery操作js数组及对象示例代码
2014/05/11 Javascript
把JavaScript代码改成ES6语法不完全指南(分享)
2017/09/10 Javascript
js 开发之autocomplete=&quot;off&quot;在chrom中失效的解决办法
2017/09/28 Javascript
vue2.0结合Element-ui实战案例
2019/03/06 Javascript
koa2服务端使用jwt进行鉴权及路由权限分发的流程分析
2019/07/22 Javascript
移动端手指操控左右滑动的菜单
2019/09/08 Javascript
浅析vue中的provide / inject 有什么用处
2019/11/10 Javascript
JS前端基于canvas给图片添加水印
2020/11/11 Javascript
python类参数self使用示例
2014/02/17 Python
Python中使用PIL库实现图片高斯模糊实例
2015/02/08 Python
Python中的__slots__示例详解
2017/07/06 Python
画pytorch模型图,以及参数计算的方法
2019/08/17 Python
python同步windows和linux文件
2019/08/29 Python
matplotlib绘制多个子图(subplot)的方法
2019/12/03 Python
深入理解css属性的选择对动画性能的影响
2016/04/20 HTML / CSS
canvas环形倒计时组件的示例代码
2018/06/14 HTML / CSS
Hotter Shoes英国官网:英伦风格,舒适的鞋子
2017/12/28 全球购物
Clearly澳大利亚:购买眼镜、太阳镜和隐形眼镜
2018/04/26 全球购物
小米俄罗斯授权商店:Xiaomi俄罗斯
2019/12/08 全球购物
英文翻译的自我评价语句
2013/10/04 职场文书
《尊严》教学反思
2014/02/11 职场文书
环保公益广告语
2014/03/13 职场文书
先进工作者申报材料
2014/12/23 职场文书
内乡县衙导游词
2015/02/05 职场文书
2015国庆节感想
2015/08/04 职场文书
2016国庆促销广告语
2016/01/28 职场文书