提问人:ugglybobby 提问时间:10/5/2023 最后编辑:ugglybobby 更新时间:10/6/2023 访问量:31
角。@Input设置 get null 参数,但在 antoher 函数中初始化了值
Angular. @Input set get null parameters but in antoher function values are initialized
问:
父组件这样做:
protected loadSelectedSource(source: TableSource) {
if (isPresent(source)) {
this.tableWidgetSettingsService.getTableColumns(source).subscribe((tableColumns) => {
this.tableColumns = tableColumns;
this.availableObjectColumnIdentifiers = this.mapColumnsToSortableItems(tableColumns);
if (this.selectedObjectColumnIdentifiers.length === 0) {
this.availableObjectColumnIdentifiers.forEach((column) => {
if (column.position > 0) {
if (!this.isDuplicateSelectedColumn(column)) {
this.selectedObjectColumnIdentifiers.push(column);
if (!isPresent(this.lastInit)) {
this.formGroupOptions.tableColumns.setErrors(null);
}
}
}
});
this.selectedObjectColumnIdentifiers = this.sortByPosition(
this.selectedObjectColumnIdentifiers,
);
}
});
}
}
子组件接收:
<multi-sortable-selection
[formatter]="formatColumn"
[availableItems]="availableObjectColumnIdentifiers"
(selectedItemsChange)="selectColumns($event, isObjectColumns)"
[selectedItems]="selectedObjectColumnIdentifiers"
我的子组件 TS:
@Input() set selectedItems(items: SortableItem[]) {
this._selectedItems = this.sortByPosition(items);
}
如果我只是写@Input selectedItems ...我得到一些值. 但是设置了 @Input() selectedItems(items) ...items 始终为 null,即使有断点,它也永远不会获取值。
但是,如果,另一组:
set availableItems(items) {
this._availableItems = items;
this.availableItemsDisplayed = this.sortByFormat(this._availableItems.filter((item) => !isPresent(this._selectedItems.find((item2) => item2.key === item.key))));
this._selectedItems = this.sortByPosition(this._selectedItems);
}
this.selectedItems 获取正确的值!
我的问题:
- 为什么我的@Input设置...不 cacth 值,而我的@Input有。
- 为什么this._selectedItems在集合中传入的情况下进行初始化。
谢谢!
- 断点
- html很好,我传递了正确的值
答: 暂无答案
评论
if (changes.availableItems && changes.selectedItems)
selectedItems