Ngx-Bootstrap模式不会刷新数据更改(如果显示为订阅)

时间:2019-07-12 14:51:47

标签: angular ngx-bootstrap

我正在尝试从组件中打开模式,并且我在调用show方法以响应另一个订阅(如果在订阅之外调用它可以正常工作)。但是从订阅开始,传递到内容的数据不会被刷新。下面是代码示例。

//Subscription
$subject.subscribe(res => {
  const bs_modal = this._bsModalService.show(ComponentA);
  bs_modal.content.data = res;

  this._bsModalService.onHide.subscribe(() => {
     console.log(bs_modal.content.res_data));
  })

})

// Modal Component
@Component({
  selector: 'app-modal',
  template: `
     <div>{{data | json}}<div>
     <button (click)="hideModal()">Hide Me</button>
  `,
})

class ComponentA {
  data: any;
  res_data: any;
  constructor(_bsModalRef: BsModalRef) {}

  hideModal() {
    this.res_data = 'Testing';
    this._bsModalRef.hide();
  }
}

模态打开时data为空,每当我关闭模态时res_data也未定义

1 个答案:

答案 0 :(得分:1)

我已经通过堆栈闪电重新创建了您的代码,并且在进行了一些调整之后,我能够将数据传递给模式:https://stackblitz.com/edit/angular-37iw9w

确保这些事情:

  • 您已经导出了componentA类。
  • 您已在模块中导入ModalModule.forRoot()。
  • 您已将componentA添加到模块中的声明数组中。
  • 您已将componentA添加到模块中的entryComponents数组中。

根据您给出的代码示例,这是假定条件,它们属于一个模块。