我正在编辑列表中的记录,单击它会以模式打开此记录,其中包含要编辑的用户信息,到目前为止一切都很好。
我的缺点是在模态中我正在加载一个依赖于所选用户的服务,我在OnInit
模态中执行此功能,但是由于当我打开模态时模态在我的主要组件中加载,该服务是空的,因为它是在加载时执行的组件主要而不是加载模式时。
当我打开模式而不是加载组件时,如何让我的函数运行?
注意:模式在一个组件中,而我的记录列表在另一个组件中
主模板:
<app-modal modalId="editUser" modalSize="modal-lg" modalTitle="Editar Usuario - {{user.userId}}" modalIcon="ion-ios-person-outline">
<app-edit-user [user]="user"></app-edit-user>
</app-modal>
主要组件(从这里我称之为我的模态):
onRowSelect(event) {
this.newUser = false;
this.user = this.cloneUser(event.data);
$("#editUser").modal();
}
组件模态
getParameters(user){
console.log(user);
this._userService.getParameter(user).subscribe(
response => {
this.userParameter = response.pagedResult.resultado;
console.log(this.userParameter);
},
error => {
console.log(<any>error);
}
);
}
// Desde aqui llamo la función pero como se ejecuta al cargar el componente los datos siempre vienen vacios
ngOnInit() {
console.log(this.user.userId);
this.getParameters(this.user.userId);
}
这个想法是在你的组件中使用 ngOnChanges 作为编辑用户,在你的列表组件中它收集编辑用户组件,并在调用它之前将数据传递给它。