首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果从订阅中显示数据更改,则不刷新数据更改。

如果从订阅中显示数据更改,则不刷新数据更改。
EN

Stack Overflow用户
提问于 2019-07-12 14:51:47
回答 1查看 758关注 0票数 0

我试图从组件中打开一个模式,并调用show方法来响应另一个订阅,如果在订阅之外调用它,它就会正常工作。但是,从订阅中,传递给内容的数据没有在下面刷新,这是代码的一个示例。

代码语言:javascript
复制
//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也是未定义的

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-12 15:13:06

我已经在stackblitz中重新创建了您的代码,在调整了一些东西之后,我能够将数据传递到模型中:https://stackblitz.com/edit/angular-37iw9w

确保以下几点:

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

根据您给出的代码示例,这是在假定它们属于一个模块的情况下进行的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57009428

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档