angular2 中@Inputs 的一次性(不是单向)绑定?

Che*_*aks 6 angular

在 angular 1.x 中,单向数据绑定语法是 ::

我正在尝试将对象传递给具有一次性绑定的子组件。孩子需要从父母那里获取初始数据,但父母永远不会改变数据,也不需要知道孩子是否改变了它。

<parent [child-data]="childData"/>
Run Code Online (Sandbox Code Playgroud)

我怎样才能一次性绑定这个?

dal*_*ez1 1

我知道这已经很旧了,但我偶然发现了这个:Angular Change DETECTION EXPLAINED基本上说,只要您使用不可变的输入和可观察量(可能并非总是如此,但可能在一些包含大量数据的大表中)绑定):

  • 仅当某些 @Input 引用发生更改(从组件内部或外部)时,组件上的ChangeDetectionStrategy.OnPush才会使整个组件重新渲染。或者该组件的模板内部存在一些事件。检查我所做的这个plunkr:ChangeDetectionStrategy.OnPush更改为默认值,然后再次尝试按钮,看看调用了多少次绑定。如果你从不改变@Input,那么你就得到了一次绑定,是的,我知道它是针对整个组件的,而不仅仅是针对特定的绑定......
  • 如果您的数据发生变化但其引用未发生变化,请注入 ChangeDetectorRef在发生更改时调用markForCheck 。