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 相关文章推荐
jquery中的$(document).ready()与window.onload的区别
Nov 18 Javascript
CutePsWheel javascript libary 控制输入文本框为可使用滚轮控制的js库
Feb 07 Javascript
AJAX分页的代码(后台asp.net)
Feb 14 Javascript
jQuery+ajax实现动态执行脚本的方法
Jan 27 Javascript
jQuery取得iframe中元素的常用方法详解
Jan 14 Javascript
TypeScript Type Innference(类型判断)
Mar 10 Javascript
AngularJS模块详解及示例代码
Aug 17 Javascript
js实现滑动到页面底部自动加载更多功能
Feb 15 Javascript
微信小程序 检查接口状态实例详解
Jun 23 Javascript
react-router4 嵌套路由的使用方法
Jul 24 Javascript
Vue多环境代理配置方法思路详解
Jun 21 Javascript
JS 数组和对象的深拷贝操作示例
Jun 06 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模板之Phpbean的目录结构
2008/01/10 PHP
支持中文的php加密解密类代码
2011/11/27 PHP
ThinkPHP V2.2说明文档没有说明的那些事实例小结
2015/07/01 PHP
关于document.cookie的使用javascript
2008/04/11 Javascript
动态创建script标签实现跨域资源访问的方法介绍
2014/02/28 Javascript
Jquery实现的角色左右选择特效
2014/05/21 Javascript
JavaScript数值转换的三种方式总结
2014/07/31 Javascript
javascript数组遍历for与for in区别详解
2014/12/04 Javascript
超赞的动手创建JavaScript框架的详细教程
2015/06/30 Javascript
javascript+HTML5的canvas实现七夕情人节3D玫瑰花效果代码
2015/08/04 Javascript
jQuery动画显示和隐藏效果实例演示(附demo源码下载)
2015/12/31 Javascript
基于JQuery实现分隔条的功能
2016/06/17 Javascript
微信小程序 form组件详解
2016/10/25 Javascript
JavaScript中重名的函数与对象示例详析
2017/09/28 Javascript
基于vue中css预加载使用sass的配置方式详解
2018/03/13 Javascript
一个小时快速搭建微信小程序的方法步骤
2019/04/15 Javascript
详解vue-cli+element-ui树形表格(多级表格折腾小计)
2019/04/17 Javascript
让mocha支持ES6模块的方法实现
2020/01/14 Javascript
基于jsbarcode 生成条形码并将生成的条码保存至本地+源码
2020/04/27 Javascript
[01:12:35]Spirit vs Navi Supermajor小组赛 A组败者组第一轮 BO3 第二场 6.2
2018/06/03 DOTA
Python操作RabbitMQ服务器实现消息队列的路由功能
2016/06/29 Python
Python模拟三级菜单效果
2017/09/11 Python
Python实现的rsa加密算法详解
2018/01/24 Python
pandas apply 函数 实现多进程的示例讲解
2018/04/20 Python
python统计字母、空格、数字等字符个数的实例
2018/06/29 Python
[原创]Python入门教程1. 基本运算【四则运算、变量、math模块等】
2018/10/28 Python
Python实现定时自动关闭的tkinter窗口方法
2019/02/16 Python
Django Rest framework频率原理与限制
2019/07/26 Python
Html5新增标签与样式及让元素水平垂直居中
2019/07/11 HTML / CSS
写一个用矩形法求定积分的通用函数
2012/11/08 面试题
咖啡蛋糕店创业计划书
2014/01/28 职场文书
大学生军训感想
2014/02/16 职场文书
学历公证书范本
2014/04/09 职场文书
合同意向书范本
2014/07/30 职场文书
党员自我对照检查材料
2014/08/19 职场文书
2016年教师师德师风心得体会
2016/01/12 职场文书