Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Angular 2属性绑定究竟是如何工作的?在这个例子中到底发生了什么?_Javascript_Angular_Angular2 Databinding - Fatal编程技术网

Javascript Angular 2属性绑定究竟是如何工作的?在这个例子中到底发生了什么?

Javascript Angular 2属性绑定究竟是如何工作的?在这个例子中到底发生了什么?,javascript,angular,angular2-databinding,Javascript,Angular,Angular2 Databinding,我是Angular 2的绝对初学者,我对属性绑定有以下疑问 这个例子是有效的,但我怀疑引擎盖下到底发生了什么 我有一个组件视图(servers.component.html文件)包含以下按钮: <button [disabled]="!allowNewServer" class="btn btn-primary">Add Server</button> 正如您在开始时所看到的,allowNewServer值为false,8秒后,构造函数中声明的函数将其设置为true 在

我是Angular 2的绝对初学者,我对属性绑定有以下疑问

这个例子是有效的,但我怀疑引擎盖下到底发生了什么

我有一个组件视图(servers.component.html文件)包含以下按钮:

<button [disabled]="!allowNewServer" class="btn btn-primary">Add Server</button>
正如您在开始时所看到的,allowNewServer值为false,8秒后,构造函数中声明的函数将其设置为true

在“我的按钮”上设置了此禁用的属性:

 [disabled]="!allowNewServer"
因此,在开始时,该按钮被禁用,8秒后将被启用

这些疑问是:

1) 角度语法的确切含义是什么


2) 我希望它被呈现为disabled=true(开始时)和8秒后的disabled=dalse,但8秒后,只需删除disable属性。因此,我认为我没有理解[…]语法的含义。

[…]
语法用于属性绑定。更多信息


我建议你学习谷歌制作的《英雄之旅》教程。它解释了Angular(v2、v4)的基本知识,并帮助您创建第一个酷炫的应用程序。您可以找到它。

语法用于属性绑定。更多信息

我建议你学习谷歌制作的《英雄之旅》教程。它解释了Angular(v2、v4)的基本知识,并帮助您创建第一个酷炫的应用程序。你可以找到它

  • []
    语法告诉angular从数据绑定信息 源(组件实例)和模板(html)
  • 你的问题是什么
  • []
    语法告诉angular从数据绑定信息 源(组件实例)和模板(html)
  • 你的问题是什么

  • 回答你的问题

    什么是[…]角度语法?

    以上语法用于数据绑定。正如官方文件所说

    编写模板属性绑定以设置视图元素的属性。绑定会将属性设置为模板表达式的值。括在方括号中的元素属性标识目标属性

    回答第二个问题

    我希望在开始时呈现类似disabled=true的内容,在8秒后呈现类似disabled=false的内容,但在8秒后,disable属性被删除。因此,我认为我没有理解[…]语法的含义。

    [disabled]=“!allowNewServer”

    这行代码的作用是根据
    allowNewServer
    将disabled属性设置为true或false。但disabled是一个布尔属性,即仅表示该属性的存在表示其设置为true,而不存在表示其为false。官方文件说

    许多属性是布尔属性。元素上存在布尔属性表示真值,不存在该属性表示假值。如果存在该属性,则其值必须为空字符串或与属性规范名称不区分大小写的ASCII匹配值,且不带前导或尾随空格

    因此,当该值设置为false(不被视为有效值)时,angular将删除该属性,因为它认为缺少该属性意味着false。这就是行为

    供参考:


    希望有帮助:)

    回答您的问题

    什么是[…]角度语法?

    以上语法用于数据绑定。正如官方文件所说

    编写模板属性绑定以设置视图元素的属性。绑定会将属性设置为模板表达式的值。括在方括号中的元素属性标识目标属性

    回答第二个问题

    我希望在开始时呈现类似disabled=true的内容,在8秒后呈现类似disabled=false的内容,但在8秒后,disable属性被删除。因此,我认为我没有理解[…]语法的含义。

    [disabled]=“!allowNewServer”

    这行代码的作用是根据
    allowNewServer
    将disabled属性设置为true或false。但disabled是一个布尔属性,即仅表示该属性的存在表示其设置为true,而不存在表示其为false。官方文件说

    许多属性是布尔属性。元素上存在布尔属性表示真值,不存在该属性表示假值。如果存在该属性,则其值必须为空字符串或与属性规范名称不区分大小写的ASCII匹配值,且不带前导或尾随空格

    因此,当该值设置为false(不被视为有效值)时,angular将删除该属性,因为它认为缺少该属性意味着false。这就是行为

    供参考:

    希望它有帮助:)

    对于#2-您的假设对于大多数html和自定义属性都是正确的。但是
    禁用
    是特例。HTML规范希望该属性对于禁用的元素没有值,而对于其他情况则没有值。也就是说,
    不是编写HTML的正确方法。此外,大多数浏览器会在您有
    时禁用您的字段。这就是angular删除它的原因。

    对于#2-对于大多数html和自定义属性,您的假设是正确的。但是
    禁用
    是特例。
     [disabled]="!allowNewServer"