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 调试利器 Firebug使用详解六
Jul 05 Javascript
JS控制日期显示的小例子
Nov 23 Javascript
javascript的parseFloat()方法精度问题探讨
Nov 26 Javascript
7个JS基础知识总结
Mar 05 Javascript
浅谈jquery之on()绑定事件和off()解除绑定事件
Oct 26 Javascript
js实现表格筛选功能
Jan 18 Javascript
angularjs封装$http为factory的方法
May 18 Javascript
Node.js 使用命令行工具检查更新
Jun 08 Javascript
浅谈webpack编译vue项目生成的代码探索
Dec 11 Javascript
基于vue+uniapp直播项目实现uni-app仿抖音/陌陌直播室功能
Nov 12 Javascript
基于Vue的侧边目录组件的实现
Feb 05 Javascript
vue实现同时设置多个倒计时
May 20 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从数据库查询结果生成树形列表的方法
2015/04/17 PHP
老版本PHP转义Json里的特殊字符的函数
2015/06/08 PHP
Zend Framework数据库操作方法实例总结
2016/12/11 PHP
PHP开发中csrf攻击的简单演示和防范
2017/05/07 PHP
PHP实现阿里大鱼短信验证的实例代码
2017/07/10 PHP
ko knockoutjs动态属性绑定技巧应用
2012/11/14 Javascript
js保留小数点后几位的写法
2014/01/03 Javascript
jQuery 获取、设置HTML或TEXT内容的两种方法
2014/05/23 Javascript
JavaScript中文件上传API详解
2016/04/01 Javascript
JavaScript操作表单实例讲解(上)
2016/06/20 Javascript
微信小程序 scroll-view组件实现列表页实例代码
2016/12/14 Javascript
javascript ES6中箭头函数注意细节小结
2017/02/17 Javascript
vue.js 1.x与2.0中js实时监听input值的变化
2017/03/15 Javascript
使用vue-cli编写vue插件的方法
2018/02/26 Javascript
jQuery实现基本动画效果的方法详解
2018/09/06 jQuery
vue-router路由模式详解(小结)
2019/08/26 Javascript
Vue+iview+webpack ie浏览器兼容简单处理
2019/09/20 Javascript
JS如何实现动态添加的元素绑定事件
2019/11/12 Javascript
Python解决线性代数问题之矩阵的初等变换方法
2018/12/12 Python
python多线程使用方法实例详解
2019/12/30 Python
python logging 日志的级别调整方式
2020/02/21 Python
python3使用Pillow、tesseract-ocr与pytesseract模块的图片识别的方法
2020/02/26 Python
解决python父线程关闭后子线程不关闭问题
2020/04/25 Python
Python如何爬取qq音乐歌词到本地
2020/06/01 Python
解决virtualenv -p python3 venv报错的问题
2021/02/05 Python
html5基础教程常用技巧整理
2013/08/20 HTML / CSS
HTML5 history新特性pushState、replaceState及两者的区别
2015/12/26 HTML / CSS
美国第二大连锁药店:Rite Aid
2019/04/03 全球购物
龟牌英国商店:Turtle Wax Brand Store UK
2019/07/02 全球购物
学生会主席演讲稿
2014/04/25 职场文书
给公司的建议书范文
2014/05/13 职场文书
群众路线查摆问题整改措施
2014/10/10 职场文书
五年级上册复习计划
2015/01/19 职场文书
班主任寄语2016
2015/12/04 职场文书
2019旅游导游工作总结
2019/06/27 职场文书
MySQL高速缓存启动方法及参数详解(query_cache_size)
2021/07/01 MySQL