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 相关文章推荐
js控制表单奇偶行样式的简单方法
Jul 31 Javascript
js交换排序 冒泡排序算法(Javascript版)
Oct 04 Javascript
比例尺、缩略图、平移缩放之百度地图添加控件方法
Aug 03 Javascript
jQuery拖动布局其结果保存到数据库
Oct 09 Javascript
js实现随机数字字母验证码
Jun 19 Javascript
安装vue-cli报错 -4058 的解决方法
Oct 19 Javascript
基于vue 开发中出现警告问题去除方法
Jan 25 Javascript
详解JS取出两个数组中的不同或相同元素
Mar 20 Javascript
Vue.js中该如何自己维护路由跳转记录
May 19 Javascript
Express结合Webpack的全栈自动刷新
May 23 Javascript
webpack中的模式(mode)使用详解
Feb 20 Javascript
微信小程序学习之自定义滚动弹窗
Dec 20 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
虫族 ZERG 概述
2020/03/14 星际争霸
珊瑚虫IP库浅析
2007/02/15 PHP
中国站长站 For Dede4.0 采集规则
2007/05/27 PHP
php中XMLHttpRequest(Ajax)不能设置自定义的Referer的解决方法
2011/11/26 PHP
在项目中寻找代码的坏命名
2012/07/14 PHP
一个比较不错的PHP日历类分享
2014/11/18 PHP
PHP实现文件下载详解
2014/11/27 PHP
ThinkPHP入口文件设置及相关注意事项分析
2014/12/05 PHP
PHP进程通信基础之信号
2017/02/19 PHP
浏览器无法运行JAVA脚本的解决方法
2008/01/09 Javascript
js加减乘除丢失精度问题解决方法
2014/05/16 Javascript
快速掌握Node.js之Window下配置NodeJs环境
2016/03/21 NodeJs
深入理解(function(){... })();
2016/08/16 Javascript
在vue项目中集成graphql(vue-ApolloClient)
2018/09/08 Javascript
10个最受欢迎的 JavaScript框架(推荐)
2019/04/24 Javascript
判断JavaScript中的两个变量是否相等的操作符
2019/12/21 Javascript
js实现飞机大战游戏
2020/08/26 Javascript
解决vue组件没显示,没起作用,没报错,但该显示的组件没显示问题
2020/09/02 Javascript
vue项目中播放rtmp视频文件流的方法
2020/09/17 Javascript
element-ui 弹窗组件封装的步骤
2021/01/22 Javascript
Scrapy框架CrawlSpiders的介绍以及使用详解
2017/11/29 Python
MAC中PyCharm设置python3解释器
2017/12/15 Python
Django1.11自带分页器paginator的使用方法
2019/10/31 Python
Python实现给PDF添加水印的方法
2021/01/25 Python
CSS3 中的@keyframes介绍
2014/09/02 HTML / CSS
Hawes & Curtis官网:英国经典品牌
2019/07/27 全球购物
巴西Mr. Cat在线商店:购买包包和鞋子
2019/09/08 全球购物
main 函数执行以前,还会执行什么代码
2013/04/17 面试题
先进德育工作者事迹材料
2014/01/24 职场文书
教师党员群众路线教育实践活动心得体会
2014/11/04 职场文书
2015年中学团委工作总结
2015/07/22 职场文书
决心书格式范文
2015/09/23 职场文书
2019年让高校“心动”的自荐信
2019/03/25 职场文书
如何理解及使用Python闭包
2021/06/01 Python
python中的getter与setter你了解吗
2022/03/24 Python
提高系统的吞吐量解决数据库重复写入问题
2022/04/23 MySQL