在这里我创建所需的stackblitz。打开控制台以查看console.log()
。
问题是当我DROP
到drop zone
数组的项目为空时(请参阅控制台),但是当您在valueChange
上键入内容或选择内容时,我得到了数据(也请检入安慰)。
在选择某些内容或键入某些内容之前,我需要加载它...我想在drop
项目时获取数据。
我使用emit()
在模板为reusable-form-component.component
的组件和主组件为cdk-drag-drop-connected-sorting-example
的组件之间获取数据
我尝试使用[attr.init]
,但得到undefined
答案 0 :(得分:1)
如果只想向container.data添加元素,而不要使用transferArray,则放置函数必须像
drop(event: CdkDragDrop<any>) {
if (event.previousContainer === event.container) {
moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);
} else {
this.index= this.index+1;
event.container.data.splice(event.currentIndex,
0,event.previousContainer.data[event.previousIndex])
}
}
答案 1 :(得分:1)
您可以使用AfterViewInit
来完成此操作,我已经为您修改了代码,并添加了此代码
click here for demo
ngAfterViewInit(){
debugger
if (this.getFormControl == "INPUT")
this.valueChange.emit({
index: this.index,
type: "INPUT",
value: this.val
});
else if (this.getFormControl == "SELECT_BOX") {
this.valueChange.emit({
index: this.index,
type: "SELECT_BOX",
selectedValue: this.val,
avaliableOptions: [
"select option 1",
"select option 2",
"select option 3"
]
});
}
}
您可以Click here查看 AfterViewInit 界面的更多详细信息