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 IE 浏览器判定代码
Mar 21 Javascript
基于jQuery实现左右div自适应高度完全相同的代码
Aug 09 Javascript
Jquery实现三层遍历删除功能代码
Apr 23 Javascript
JS获取当前网页大小以及屏幕分辨率等
Sep 05 Javascript
触屏中的JavaScript事件分析
Feb 06 Javascript
javascript实现信息增删改查的方法
Jul 25 Javascript
手机端实现Bootstrap简单图片轮播效果
Oct 13 Javascript
js中字符型和数值型数字的互相转化方法(必看)
Apr 25 Javascript
vue.js 左侧二级菜单显示与隐藏切换的实例代码
May 23 Javascript
Node.js Buffer模块功能及常用方法实例分析
Jan 05 Javascript
详解vue-cli+element-ui树形表格(多级表格折腾小计)
Apr 17 Javascript
vue自定义指令限制输入框输入值的步骤与完整代码
Aug 30 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读取csv实现csv文件下载功能
2013/12/18 PHP
php获得客户端浏览器名称及版本的方法(基于ECShop函数)
2015/12/23 PHP
php实用代码片段整理
2016/11/12 PHP
laravel实现批量更新多条记录的方法示例
2017/10/22 PHP
PHP mongodb操作类定义与用法示例【适合mongodb2.x和mongodb3.x】
2018/06/16 PHP
基于Jquery的文字滚动跑马灯插件(一个页面多个滚动区)
2010/07/26 Javascript
JavaScript中:表达式和语句的区别[译]
2012/09/17 Javascript
js实现点击注册按钮开始读秒倒计时的小例子
2013/05/11 Javascript
js获得页面的高度和宽度的方法
2014/02/23 Javascript
jQuery表格插件datatables用法总结
2014/09/05 Javascript
node.js中的http.request.end方法使用说明
2014/12/10 Javascript
javascript动态创建及删除元素的方法
2014/12/22 Javascript
多个jQuery版本共存的处理方案
2015/03/17 Javascript
基于slideout.js实现移动端侧边栏滑动特效
2016/11/28 Javascript
vue的状态管理模式vuex
2017/11/30 Javascript
使用Object.defineProperty如何巧妙找到修改某个变量的准确代码位置
2018/11/02 Javascript
javascriptvoid(0)含义以及与&quot;#&quot;的区别讲解
2019/01/19 Javascript
一文看懂如何简单实现节流函数和防抖函数
2019/09/05 Javascript
jquery实现有过渡效果的tab切换
2020/07/17 jQuery
python实现井字棋游戏
2020/03/30 Python
浅谈Python实现Apriori算法介绍
2017/12/20 Python
Python搭建FTP服务器的方法示例
2018/01/19 Python
用pycharm开发django项目示例代码
2018/10/24 Python
python爬取淘宝商品销量信息
2018/11/16 Python
python+selenium 定位到元素,无法点击的解决方法
2019/01/30 Python
python内存管理机制原理详解
2019/08/12 Python
美国最大的香水出口:FragranceX.com
2017/11/04 全球购物
李维斯牛仔裤英国官方网站:Levi’s英国
2019/10/10 全球购物
华硕新加坡官方网上商店:ASUS Singapore
2020/07/09 全球购物
亚马逊海外购:亚马逊美国、英国、日本、德国直邮
2021/03/18 全球购物
乡镇党员干部群众路线对照检查材料思想汇报
2014/09/28 职场文书
简单租房协议书(范本)
2014/10/13 职场文书
我的长征观后感
2015/06/09 职场文书
毕业实习证明范本
2015/06/16 职场文书
学校教学管理制度
2015/08/06 职场文书
文明礼貌主题班会
2015/08/14 职场文书