Angular - 根据变量变化触发事件

标签 angular event-handling

我有一个在服务中设置的项目列表,并在 ngOnInit() 中调用:

async ngOnInit(){
   this.items = await this.service.getItems();
}

并且此列表是使用指令 *ngfor 呈现的。

但是,现在当变量发生任何变化时我需要刷新项目列表。因此,我需要一个仅当某个变量(我们称之为 itemCategories)更改其值时运行的事件。

我怎样才能实现这个目标?

Angular 版本是 12,我是新手

最佳答案

将你的数据填充到behaviorSubject中,然后订阅它,现在只要你的数据发生变化,你的behaviorSubject方法就会被调用,下面是一个例子:

我声明我的behaviorSubject如下:

  private _resetForm$ = new BehaviorSubject<boolean>(false);


      public set setResetForm(resetStatus: boolean) {
        this._resetForm$.next(resetStatus);
      }
    
      public get resetForm(): Observable<boolean> {
        return this._resetForm$.asObservable();
      }

然后我在这里更改它:

  this.setResetForm = true;

现在我将从这里获取事件,因为 setResetForm 已更改,因此我将从它获取事件:

  ngOnInit(): void {
    this.resetForm.subscribe((res: boolean) => {
      if (res) {
        console.log(res);
      }
    });
  }

祝你好运!

关于Angular - 根据变量变化触发事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70412265/

相关文章:

javascript - insideHTML 正确显示除文本颜色和背景颜色之外的所有内容

javascript - 单击 div 内的链接触发 div 的 onclick

javascript - 带有 id 的 div 不接受任何事件处理程序 JavaScript。没有Jquery

java - 使用一个 Controller 处理多个 JavaFX 按钮

javascript - ag-grid:使用 'serverSide' rowModel 刷新当前 View

javascript - 如何在 Angular typescript 或 jquery 中全局更新变量?

angular - 在配置文件 'tsconfig.json' 中找不到任何输入。指定的 'include' 路径在 Angular 6 中

angular - Google Cloud App Engine 上的刷新页面抛出 404

javascript - 如何使用 JavaScript 列出 DOM 节点的所有已注册事件?

javascript - 在下拉列表更改时禁用输入