【问题标题】:Update an array after submit a form in another component在另一个组件中提交表单后更新数组
【发布时间】:2021-07-13 07:33:12
【问题描述】:

我有一个名为“modal-form”的组件和另一个名为“array”的组件,我想在提交表单后更新数组而不刷新视图。我尝试使用@Input,但当我从模态组件调用测试函数时,它似乎不起作用。

模态形式

我在这里发布了表单,但我刷新了视图,这不是我想要的。

  add() {
    this.service.post(this.form).subscribe((data) => {
      console.log(data)
      this.router.navigate([this.router.url]);
    });
  }

数组

  ngOnInit(): void {
        this.service.getObjects().subscribe((data) => {
          this.objects = data;
        });
      }

【问题讨论】:

    标签: angular components


    【解决方案1】:

    这是使用服务的理想情况。要么您在服务中有一个局部变量(例如stuffArray),要么您设置了一个主题即服务:通常是您的数组组件订阅的BehaviorSubject。无论哪种方式,当您将表单保存在模态中时,您都会保存到数组(或让BehaviorSubject 发出)。为了完全安全,请在服务器请求的回调中执行此操作,以确保数据已正确保存。

    【讨论】:

    • 如何在服务功能中设置BehaviorSubject?当我设置我的变量时,我得到了这个错误:Type 'Observable<[]>' is missing the following properties from type 'BehaviorSubject<[]>
    • const mySubj$ = new BehaviorSubject<T>(initialValue)
    • 您不能只将 HTTP 请求分配为 BehaviorSubject。如果你想使用这种方法,我建议你先阅读一下。
    猜你喜欢
    • 2022-12-22
    • 1970-01-01
    • 2023-01-30
    • 2023-04-08
    • 2017-08-14
    • 1970-01-01
    • 1970-01-01
    • 2019-05-16
    • 1970-01-01
    相关资源
    最近更新 更多