angular 2中使用的“[()]'语法是什么

What is `[()]` syntax used for in angular2?

本文关键字:是什么 语法 angular      更新时间:2024-02-23

我知道我们使用

用于检测类似的事件的()

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

 <div (blur)="doSomethingElse()">

和CCD_ 2,用于在类似的模板中将变量转换为字符串

<div>{{a_variable_i_want_to_show}}</div>

但是,在ng模型中,除了双向结合之外,我们还用[()]做什么呢?

有通用用法吗?

它是双向绑定。检查他们的备忘单:

设置双向数据绑定。相当于:<my-cmp [title]="name" (titleChange)="name=$event">

与NgModel一起使用时,[()]在组件属性和DOM表单元素之间设置双向数据绑定。我们对组件属性所做的任何更改都会自动传播到DOM,而我们对表单元素(即DOM)所做的所有更改都会被自动传播到组件属性。

与组件一起使用时,[()]在父组件属性和子组件属性之间设置双向数据绑定。我们对父组件属性所做的任何更改都会自动传播到DOM。但是,我们对子组件属性所做的任何更改都不会自动传播到父组件–我们必须使用CCD_ 7。所以它和NgModel有点不同。

子组件必须定义一个输入属性和一个输出属性,即EventEmitter。如果输入属性的名称为x,则输出属性的名称必须为xChange。子组件必须通过调用xChange.emit(newValue)显式地发出对x的任何更改。

之所以需要命名,是因为[(childProp)]="parentProp"[childProp]="parentProp" (childPropChange)="parentProp=$event"的简写。

如果在从子级发出新值时需要在父级中执行某些逻辑,则需要使用扩展形式:[childProp]="parentProp" (childPropChange)="doSomething($event)"