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 相关文章推荐
Mootools 1.2教程 选项卡效果(Tabs)
Sep 15 Javascript
JS实现自适应高度表单文本框的方法
Feb 25 Javascript
javascript框架设计之框架分类及主要功能
Jun 23 Javascript
JS实现的通用表单验证插件完整实例
Aug 20 Javascript
JSONP和批量操作功能的实现方法
Aug 21 Javascript
Ajax验证用户名或昵称是否已被注册
Apr 05 Javascript
如何将你的AngularJS1.x应用迁移至React的方法
Feb 01 Javascript
Vue.js 事件修饰符的使用教程
Nov 01 Javascript
微信小程序中button去除默认的边框实例代码
Aug 01 Javascript
Vue程序化的事件监听器(实例方案详解)
Jan 07 Javascript
在vue-cli创建的项目中使用sass操作
Aug 10 Javascript
React Ant Design树形表格的复杂增删改操作
Nov 02 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
Mysql的Root密码忘记,查看或修改的解决方法(图文介绍)
2013/06/14 PHP
smarty模板引擎基础知识入门
2015/03/30 PHP
实现PHP中session存储及删除变量
2018/10/15 PHP
文字幻灯片
2006/06/26 Javascript
25个好玩的JavaScript小游戏分享
2011/04/22 Javascript
深入理解javascript作用域和闭包
2014/09/23 Javascript
jQuery中:checkbox选择器用法实例
2015/01/03 Javascript
javascript动态修改Li节点值的方法
2015/01/20 Javascript
javascript折半查找详解
2015/01/26 Javascript
jQuery插件kinMaxShow扩展效果用法实例
2015/05/04 Javascript
简介JavaScript中的unshift()方法的使用
2015/06/09 Javascript
javascript实现状态栏中文字动态显示的方法
2015/10/20 Javascript
JavaScript获取各大浏览器信息图示
2015/11/20 Javascript
js实现仿qq消息的弹出窗效果
2016/01/06 Javascript
JS函数的定义与调用方法推荐
2016/05/12 Javascript
JavaScript中的冒泡排序法
2016/08/03 Javascript
vue组件初学_弹射小球(实例讲解)
2017/09/06 Javascript
JS动态修改网页body的背景色实例代码
2017/10/07 Javascript
JavaScript实现栈结构Stack过程详解
2020/03/07 Javascript
基于Vue sessionStorage实现保留搜索框搜索内容
2020/06/01 Javascript
jQuery开发仿QQ版音乐播放器
2020/07/10 jQuery
[01:01:52]完美世界DOTA2联赛PWL S2 GXR vs Magma 第二场 11.25
2020/11/26 DOTA
Python实现读取并保存文件的类
2017/05/11 Python
Windows 64位下python3安装nltk模块
2018/09/19 Python
Kali Linux安装ipython2 和 ipython3的方法
2019/07/11 Python
TensorFlow实现模型断点训练,checkpoint模型载入方式
2020/05/26 Python
Python中zip函数如何使用
2020/06/04 Python
HTML5 通信API 跨域门槛将不再高、数据推送也不再是梦
2013/04/25 HTML / CSS
印尼在线购买隐形眼镜网站:Lensza.co.id
2019/04/27 全球购物
Linux上比较文件的命令都有哪些
2013/09/28 面试题
中专药剂专业应届毕的自我评价
2013/12/27 职场文书
《长城和运河》教学反思
2014/04/14 职场文书
食品安全汇报材料
2014/08/18 职场文书
Python基础之字符串格式化详解
2021/04/21 Python
一篇文章弄懂Python关键字、标识符和变量
2021/07/15 Python
mysql数据插入覆盖和时间戳的问题及解决
2022/03/25 MySQL