在 Angular 中,我们必须使用括号,而我们必须使用括号 [重复]

Posted

技术标签:

【中文标题】在 Angular 中,我们必须使用括号,而我们必须使用括号 [重复]【英文标题】:In Angular for which arrtributes we have to use parentheses and for which we have to use bracket [duplicate] 【发布时间】:2017-11-05 08:04:59 【问题描述】:

我对在 Angular 中的属性上使用括号和方括号有点困惑。

<form [formGroup]="vform" (ngSubmit)="onSubmit(vform.value)">
  <input type="text" name="uname" placeholder="User Name" formControlName="uname">
  <input type="text" name="fname" placeholder="Full Name" formControlName="fname">
  <input type="submit" [disabled]="!vform.valid" value="Submit">
</form>

【问题讨论】:

问题是什么 我们必须使用圆括号和方括号,对于 ngSubmit 我们使用圆括号,对于禁用我们使用方括号。所以我对我们使用哪些属性感到困惑? angular.io/docs/ts/latest/guide/template-syntax.html 文档在这个问题上非常清楚。请阅读。 【参考方案1】:

无论何时您将属性向下传递给组件/元素,您都会使用括号,例如:

假设我将 size="20" 传递给 div 元素

<div size="20"></div> // passing a value , not a VARIABLE 

<div [size]="sizeVariable"></div> // passing a variable to be bound to 

为了给你一个更广阔的视野,想象一下当使用普通的style 标签时,你将一些属性(在这种情况下是颜色和...等样式)传递给元素:

<div style="color:red">

在使用 parantesese 时,您正在订阅来自元素的事件:

<div (click)="doSomething()">

类似于:

<div onClick="doSomething">

有点类似

 $('#yourElement').on('click',doSomething)

【讨论】:

【参考方案2】:

[] 用于从值绑定。它允许传递对象。

<div [allowed]="allowed"></div>

() 用于绑定在触发 DOM 事件时调用的事件处理程序

<date-comp [title]="childTitle" (notify)="onNotification($event)"></date-comp>

参考What is the difference between parentheses, brackets and asterisks in Angular2?

【讨论】:

【参考方案3】:

使用括号绑定到(click)="clickHandler()"等事件

使用方括号绑定到[disabled]="true"等属性

使用两者(称为盒子中的足球)进行双向绑定,例如[(ngModel)]="attr"

【讨论】:

(点击)查看组件。(单向)[禁用]查看组件查看(单向)[(ngModel)]双向绑定【参考方案4】:

括号用于函数调用,而括号用于传递或设置属性。有关更多信息,请参阅 angular 文档@www.angular.io

【讨论】:

以上是关于在 Angular 中,我们必须使用括号,而我们必须使用括号 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

在 Angular 6 中的类上实现

定义函数

MySQL中如何修改用户各种信息

制作括号匹配的方法

py2和py3之间的不同

面试必问之spring 面试题