当前位置: 首页 > 知识库问答 >
问题:

双向绑定组件之间的角2 - 4

鄂坚
2023-03-14

我希望将子组件值绑定到父组件。在< code>@Input()和< code>[(ngModel)]都不够用的情况下,如何做到这一点?

这是一个扑通

共有3个答案

祁远
2023-03-14

以< code>@Output()为例

@Output() event: EventEmitter<Type> = new EventEmitter();

通过< code>emit功能发送数据

send(): void {
  this.event.emit(data);
}

阅读更多关于EventEmitter的信息

司徒良哲
2023-03-14

您可以像下面这样进行双向数据绑定:

@Component({

selector: 'app-sizer',
  template: `
  <div>
    <button (click)="dec()" title="smaller">-</button>
    <button (click)="inc()" title="bigger">+</button>
    <label [style.font-size.px]="size">FontSize: {{size}}px</label>
  </div>`
})
export class SizerComponent {
  @Input()  size: number | string;
  @Output() sizeChange = new EventEmitter<number>();

  dec() { this.resize(-1); }
  inc() { this.resize(+1); }

  resize(delta: number) {
    this.size = Math.min(40, Math.max(8, +this.size + delta));
    this.sizeChange.emit(this.size);
  }
}

并在父组件的模板中对大小进行双向绑定,如下所示:

<app-sizer [(size)]="fontSizePx"></app-sizer>
<div [style.font-size.px]="fontSizePx">Resizable Text</div>

它(双向绑定)只是属性绑定的语法糖,因此它等价于:

<app-sizer [size]="fontSizePx" (sizeChange)="fontSizePx=$event"></app-sizer>

当 prop 具有名为 prop 的 Input 属性和具有名称 propChange 的事件(输出属性)时,可以使用 [(prop)] 语法。

代码来自angular docs。有关更多信息,请导航到此地址:https://angular.io/guide/template-syntax#two-装订方式---

年运珧
2023-03-14

在这里,您还必须设置@Output,并更改组件,如下所示:

export class CounterComponent {

  @Output('initoChange') emitter: EventEmitter<string> = new EventEmitter<string>();
  @Input('inito') set setInitoValue(value) {
      this.count = value;
  }
  count: number = 0;

  increment() {
    this.count++;
    this.emitter.emit(this.count);
  }

  decrement() {
    this.count--;
    this.emitter.emit(this.count);
  }

}

这里是plunker的链接,请过目。

 类似资料:
  • 我对Angular2还很陌生,我有一个小问题: 在我的Login-Component-HTML中,我有两个复选框,我希望以两种方式将它们绑定到login-component-typescript数据绑定。 这是HTML: 这是组件.ts: 如果我单击一个复选框,我会在控制器(组件)中获得正确的值。 但是如果更改组件中例如的值,则复选框不会“获取”新值。 因此我无法操作组件中的复选框(就像我想在组件

  • 编辑问题包括期望的行为, 我正在编写一个Angular 2应用程序,我不明白为什么Angular不能正确使用

  • Mpx针对表单组件提供了wx:model双向绑定指令,类似于v-model,该指令是一个语法糖指令,监听了组件抛出的输入事件并对绑定的数据进行更新,默认情况下会监听表单组件的input事件,并将event.detail.value中的数据更新到组件的value属性上。 简单实用示例如下: <view> <input type="text" wx:model="{{message}}"> <

  • 双向绑定这个概念在angular出现的时候,就作为王牌概念. 现在几乎是个js前端框架,就有这个功能. 它的概念是: 某个变量, 如果展现在页面上的话: 如果在代码层面进行修改, 那么页面的值就会发生变化 如果在页面进行修改(例如在input标签中), 那么代码的值就会发生变化. 一个演示例子. 在我们的项目中,增加一个 vue页面: src/components/TwoWayBinding.vu

  • 单向绑定非常简单,就是把Model绑定到View,当我们用JavaScript代码更新Model时,View就会自动更新。 有单向绑定,就有双向绑定。如果用户更新了View,Model的数据也自动被更新了,这种情况就是双向绑定。 什么情况下用户可以更新View呢?填写表单就是一个最直接的例子。当用户填写表单时,View的状态就被更新了,如果此时MVVM框架可以自动更新Model的状态,那就相当于我