【问题标题】:Is Angular4 really 2-Way data-Binding?Angular4 真的是 2-Way 数据绑定吗?
【发布时间】:2019-02-20 06:03:09
【问题描述】:

我对 Angular2/4/5/6 的了解是,由于 [(ngModel)],其中的 2 路数据绑定是可能的——就像它发生在 Angular1 中一样$范围。

现在,我看到了这个网站,它明确指出 Angular4 中无法进行 2-Way 数据绑定。我很困惑。有人真的可以澄清一下——在 Angular 2/4/5/6 中是否可以进行 2-Way 数据绑定?

链接:https://dzone.com/articles/understanding-output-and-eventemitter-in-angular

【问题讨论】:

    标签: javascript angular data-binding angular-ngmodel


    【解决方案1】:

    Angular 是一个 javascript 框架,而 javascript 有一些限制,不允许真正的双向数据绑定。

    确实,第一种方式(模板到变量)成为可能,这要归功于本机 javascript API,它允许监听输入字段上的事件,但是当变量更改时不会发出事件,所以另一种方式是使用 javascript API 不可行。

    detection change 出现了,由 Zone.js 实现,Angular “监听”您的代码并触发对这三种类型事件的更改检测:

    • 页面上的用户事件(点击、提交、模糊等...)
    • XMLHttpRequest 已结束
    • 定时器(setTimeoutsetInterval)触发了某些功能

    更改检测会使用每个绑定变量更新模板。

    这就是双向数据绑定的实际存在方式。

    顺便说一句,[(ngModel)][ngModel]="variable" (ngModelChange)="variable = $event" 的语法糖:这是两种方式

    【讨论】:

      【解决方案2】:

      在 Angular 2/4/5/6 中是否可以进行 2-Way 数据绑定?

      不,不是[(ngModel)] 不是双向数据绑定。它只是同时事件绑定和属性绑定的语法糖。

      探索更多

      1. Do you really know what unidirectional data flow means in Angular

      2。 Change Detection Reinvented Victor Savkin
      3. TWO-WAY DATA BINDING IN ANGULAR

      【讨论】:

        猜你喜欢
        • 2012-05-16
        • 2011-03-22
        • 2015-07-28
        • 2019-04-03
        • 2011-07-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多