我有一个案例,我有一个父组件和 2 个子组件(基于 ng-select 的选择组件)这个想法是,当我在第一个 ng-select 中选择和项目时,应该在第二个中禁用相同的。反之亦然。
在父我使用@ViewChildren 来查询组件和设置禁用输入属性
在孩子们中,当我在 ng-select 中选择和项目时,我会在父母中发出我需要的信息
在这种方法中,我然后找到正确的子组件并设置禁用的输入属性
const connectionSelector = this.connectionSelectors.find(connectionSelector => connectionSelector.source == false);
connectionSelector.disabledConnection = this.selectedSourceConnection;
在子组件中,我有 ngOnChanges 方法来检查更改,但 disabledConnection 属性没有得到更新
它仅在我进行页面加载时有效
父视图:
<sc-connection-selector [default]="false" [source]="true" [quick]="false"
[selectedConnection]="selectedSourceConnection"
[disabledConnectionId]="disabledTargetConnectionId"
(dataToEmit)="onValueChanged($event)">
</sc-connection-selector>
孩子:
<ng-select [items]="connections" bindLabel="userName"
[placeholder]="'general.select-placeholder' | translate "
(change)="onConnectionChange()"
groupBy="type"
dropdownPosition="bottom"
[(ngModel)]="selectedConnection">
<ng-template ng-optgroup-tmp let-item="item">
<b>{{item.type || 'Unnamed group'}}</b>
</ng-template>
</ng-select>
我在这里想念什么?
-贾尼