【问题标题】:Evaluate subscription callback at time observable is created在创建 observable 时评估订阅回调
【发布时间】:2020-02-03 06:43:19
【问题描述】:

我有一个响应式表单,其中显示以下订阅中的函数在可观察对象发出数据时评估 itm["value"].length-1(并调用订阅函数)。

      this.formCtls[controlName] = new FormControl('', {updateOn: 'blur'});
      this.userForm.addControl(controlName, this.formCtls[controlName]);
      this.formCtls[controlName].valueChanges.subscribe(val=>{
        itm["value"][itm["value"].length-1]=val;
        this.renderDataArray();
      });

但是,我希望在创建 observable/(FormControl) 时评估订阅回调函数表达式 itm["value"].length-1

例如,在创建表单控件时,itm["value"].length 可能只是 2,但在 Observable 发出 itm["value"].length 时可能是 67 或任何其他数字。我如何(以编程方式)将2(或等效项)“硬连线”到订阅回调中?

非常感谢!

【问题讨论】:

    标签: angular observable


    【解决方案1】:

    我现在不太确定下面的答案。它在我的代码中有效,但我不确定它为什么有效。我将重新评估这个临时答案并发布更新。同时,我非常感谢专家的任何意见,因为我对这些 Observable 感到有点困惑和迷失。 . .

    this.formCtls[controlName] = new FormControl('', {updateOn: 'blur'});
          this.userForm.addControl(controlName, this.formCtls[controlName]);
          const idx = itm["value"].length-1;
          this.formCtls[controlName].valueChanges.subscribe(val=>{
            itm["value"][idx]=val;
            this.renderDataArray();
          });
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-30
      • 2018-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-12
      • 1970-01-01
      • 2013-07-24
      相关资源
      最近更新 更多