我正在开发一个组件,并且在父组件内部使用它(因此在这种情况下,我们可以将我的组件称为子组件)。
我的组件具有一个名为selectedValue
的@Input属性。
它也使用ngModel
绑定(因为用法上下文是一种形式)。 ngModel绑定到父组件模型的属性。
我希望ngModel
的值更改将更新组件的selectedValue
属性(这是通过实现ControlValueAccessor和writeValue函数来完成的。)
在组件视图上,它将显示selectedValue
的值。
代码摘要:
<parent-component ...>
<my-child-component
[(ngModel)]="parentModel.propertyMyComponentNeedToBind"
[selectedValue]="defaultValue">
</my-child-component>
</parent-component>
实现ControlValueAccessor
writeValue(value) {
this.selectedValue = value:
}
我当前的问题是关于编辑(加载现有数据)的情况:
[selectedValue]
,则ngModel
的期望值将不会加载到视图中,而是空/空<parent-component ...>
<my-child-component
[(ngModel)]="parentModel.propertyMyComponentNeedToBind"
**does not have [selectedValue] here**>
</my-child-component>
</parent-component>
[selectedValue]
(如上面的代码摘要中所示),它可以将ngModel
数据加载到视图中因此,我猜想在从模板中设置@Input property
和ngModel
时,是否有一个特定的顺序Angular进程一个接一个?并且尤其是像我这样,当ngModel更改也将更新@Input属性时,这里是否存在任何特定的顺序或冲突?
当然,如果有人可以帮助指出我的问题背后的原因,我们将不胜感激?