angular 数据绑定之[]和{{}}的区别

 更新时间:2018年09月25日 09:24:59   作者:喵先生的进阶之路  
这篇文章主要介绍了angular 数据绑定之[]和{{}}的区别,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

问题描述

在学习angular时,在示例代码写到加载图片时,书中推荐使用单向数据绑定符号[]来绑定图片的路径,然后双花括号的写法是错的。

尝试

首先,按书中推荐的写法:

<img [src]="imgUrl" />

这里就省略了控制器中定义变量的代码。

然后又按书中说错误的方式进行尝试:

<img src="{{ imgUrl }}" />

最后的测试结果发现两种写法都可以正常加载图片,并没有出现将{{ imgUrl }}解析成字符串的问题。

重读

发现没有达到预期的效果,所以就又重新看了一下书中是怎么说的:

如果浏览器在Angular运行起来之前就加载了这段模板,就会尝试以字符串{{ imgUrl }}为Url来加载图片,这当然会得到一个“404 Not found”错误。在Angular运行起来之前,浏览器会在页面显示一个破损的图像。

仔细读了上面的原文,发现出现错误是有条件的。那什么时候才会触发上面的错误呢?

猜测

联想到angularjs中的双花括号,与angular类似,之前在使用的时候就会出现变量没有被正常加载的问题,导致页面直接显示{{...}}的现象。当时出现这种问题是在加载缓慢,或者重复刷新。原因就是模板加载完成了,但是angularjs并没有加载完全。

所以,我就大胆猜测,当angular加载缓慢的时候,{{}}的写法就会出现问题。

(这里笔者经过几次尝试,并没有出现问题。如果有人尝试出,欢迎指正。)

两种绑定的区别

使用[]和{{}}的区别并不大,两者都是一种angular中的单向绑定实现方式,却别就是使用{{}}的形式,会将括号中的表达式解析完成后,再将结果转换成字符串。而[]不会转换成字符串。

总结

有些问题可能以我们目前的水平并不能很好的解释,但是做出一个令自己信服的猜测还是很容易的。哪怕这个猜测在未来的某一天被证实是错误的,那只会是你新的积累的开始。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • AngularJS基础 ng-non-bindable 指令详细介绍

    AngularJS基础 ng-non-bindable 指令详细介绍

    本文主要讲解AngularJS ng-non-bindable 指令,这里帮大家整理了ng-non-bindable指令的基本知识资料,有需要的小伙伴可以参考下
    2016-08-08
  • Angular2中监听数据更新的方法

    Angular2中监听数据更新的方法

    今天小编就为大家分享一篇Angular2中监听数据更新的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08
  • Angular中的ActivatedRoute和Router原理解释

    Angular中的ActivatedRoute和Router原理解释

    这篇文章主要为大家介绍了Angular中的ActivatedRoute和Router原理解释,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • AngularJS国际化详解及示例代码

    AngularJS国际化详解及示例代码

    本文主要介绍AngularJS国际化的知识,这里整理了相关资料和示例代码以及实现效果图,有兴趣的小伙伴可以参考下
    2016-08-08
  • AngularJS ng-change 指令的详解及简单实例

    AngularJS ng-change 指令的详解及简单实例

    本文主要介绍AngularJS ng-change 指令,这里对ng-change指令资料做了详细介绍,并提供源码和运行结果,有需要的小伙伴参考下
    2016-07-07
  • angular2中router路由跳转navigate的使用与刷新页面问题详解

    angular2中router路由跳转navigate的使用与刷新页面问题详解

    这篇文章主要给大家介绍了angular2中router路由跳转navigate的使用与刷新页面问题的相关资料,文中介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-05-05
  • Angular学习教程之RouterLink花式跳转

    Angular学习教程之RouterLink花式跳转

    这篇文章主要给大家介绍了关于Angular学习教程之RouterLink花式跳转的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2018-05-05
  • Angular5中调用第三方js插件的方法

    Angular5中调用第三方js插件的方法

    下面小编就为大家分享一篇Angular5中调用第三方js插件的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-02-02
  • Angularjs中的$apply及优化使用详解

    Angularjs中的$apply及优化使用详解

    angular js的双向数据绑定,在开发中起到的作用灰常大,所以下面这篇文章主要给大家介绍了关于Angularjs中$apply及优化使用的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧
    2018-07-07
  • angularJS1 url中携带参数的获取方法

    angularJS1 url中携带参数的获取方法

    今天小编就为大家分享一篇angularJS1 url中携带参数的获取方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10

最新评论