Javascript 在angular4应用程序的模态对话框上显示数据
我有一个angular 4应用程序,我想在对话框中显示数据。因此,我使用Javascript 在angular4应用程序的模态对话框上显示数据,javascript,angular,Javascript,Angular,我有一个angular 4应用程序,我想在对话框中显示数据。因此,我使用@Output将数据从子组件传递到父组件 因此,在父组件中,我有: export class DashboardComponent { myTask; public returnTask(task: any):void { console.log("returnTask"); this.myTask = task; console.log(this.myTa
@Output
将数据从子组件传递到父组件
因此,在父组件中,我有:
export class DashboardComponent {
myTask;
public returnTask(task: any):void {
console.log("returnTask");
this.myTask = task;
console.log(this.myTask);
}
openDialogEditTask() {
console.log(this.myTask);
let dialogRef = this.dialogEditTask.open(DialogEditTask, {
//task
data: {
start: this.myTask.start,
end: this.myTask.end,
status: this.myTask.status,
user: this.myTask.user,
content: this.myTask.content,
id: this.myTask.id,
rate: this.myTask.rate
}
});
dialogRef.afterClosed().subscribe(result => {
this.selectedOption = result;
});
}
}
在父html中,我有:
<visTimeline (myTask)="returnTask($event)"></visTimeline>
export class VisTimelineComponent {
@Output() myTask: EventEmitter<any> = new EventEmitter<any>();
}
Timeline.prototype.onTaskDoubleClick
是库中的一个函数。我认为您无法将数据传递到模态组件中。尝试使用componentInstance方法
openDialogEditTask() {
console.log(this.myTask);
let dialogRef = this.dialogEditTask.open(DialogEditTask, {
height: '90%',
width: '80%'
});
dialogRef.componentInstance.myTaskValue = this.myTask; //<- passing data into DialogEditTask component
dialogRef.afterClosed().subscribe(result => {
this.selectedOption = result;
});
}
openDialogEditTask(){
console.log(this.myTask);
让dialogRef=this.dialogEditTask.open(dialogEditTask{
身高:90%,
宽度:“80%”
});
dialogRef.componentInstance.myTaskValue=this.myTask;//{
this.selectedOption=结果;
});
}
在对话框EditTask中声明一个变量myTaskValue:any代码>
当调用openDialogEditTask时,您将在myTaskValue变量中获得传递到DialogEditTask组件的所有值?如何使用openDialogEditTask中的数据,使用可能有助于喜欢数据的安全运算符?。单击按钮时调用的是什么?编辑任务什么是安全运算符?只有在任务准备就绪时才显示该按钮,如编辑任务我可以将数据传递到模式组件中,但我想我获取数据太晚了,因为调用了openDialogEditTask在returnTask之前,所以我打开对话框时没有这些信息,但在打开对话框之后才有。如何打开openDialogEditTask()函数。请添加更多代码。如果在调用后自动调用,请将此.openDialogEditTask()放入returnTask()中。否则,可能会出现变化检测问题。在代码中使用ngZone,您认为更改不会被检测到。如果可能,添加代码的plnkr@AdrienI通过单击按钮调用openDialogEditTask()。@Adrien尝试将onTaskDoubleClick的发射放在角度区域中。这可能是变化检测的问题。查看我的答案,了解如何使用ngZone。我希望这会有帮助
openDialogEditTask() {
console.log(this.myTask);
let dialogRef = this.dialogEditTask.open(DialogEditTask, {
height: '90%',
width: '80%'
});
dialogRef.componentInstance.myTaskValue = this.myTask; //<- passing data into DialogEditTask component
dialogRef.afterClosed().subscribe(result => {
this.selectedOption = result;
});
}