【问题标题】:Why child class doesnt refresh value of another child class Angular为什么子类不刷新另一个子类Angular的值
【发布时间】:2021-12-17 02:05:53
【问题描述】:

我遇到了打字稿问题。 示意性地,我有:

  • 父抽象类A。

  • 子类 B。

  • 子类 C。

      export abstract class BasePage {
    
          public value = 1;
    
      }
    
      @Component({...}) // selector, template ...
      export class A extends BasePage{
          constructor(){}
    
          editValue(){
            this.value = 3;
          }
      }
    
      @Component({...}) // selector, template ...
      export class B extends BasePage{
          constructor(){}
      }
    
      <!-- B template -->
      <p> Parent abstract value : {{ value }}<!-- still remain 1 --> </p>
    

在父类 A 中,我有在两个子类中使用的属性“值”。但是当我在 A 类中同时启动 editValue() 时,它不会在 B 类中刷新。

【问题讨论】:

  • 因为它们不是同一个实例
  • 你需要在父类中有一个 Observable 子类可以订阅
  • 可能你的问题的答案在于解释javascript如何理解子类和父类,当你调用editValue(){ this.value = 3;这个函数“this”属于A类而不是BaseClass

标签: javascript html angular typescript


【解决方案1】:

可能你的问题的答案在于解释javascript如何理解子类和父类,当你调用时

editValue(){
        this.value = 3;
      }

这个函数“this”属于A类而不是BaseClass,

同样在 TS 中,当你扩展一个类时,你需要在构造函数中调用 super(),这会将 value 初始化为 1,下次当你调用 editValue 时,你实际上是在更改类属性而不是父类属性

从 TS 操场的这个例子看 TS 是如何在 JS 中转换的,

你在这里处理不同的对象

【讨论】:

    猜你喜欢
    • 2012-09-19
    • 1970-01-01
    • 2012-09-04
    • 1970-01-01
    • 1970-01-01
    • 2022-11-18
    • 2018-11-08
    • 1970-01-01
    • 2022-01-25
    相关资源
    最近更新 更多