Javascript 无法运行类';s函数在特定函数中

Javascript 无法运行类';s函数在特定函数中,javascript,angular,typescript,oop,angular8,Javascript,Angular,Typescript,Oop,Angular8,我正在自定义组件上使用模板内的HTML: 然后,在控制器中,我调用一个属于这个特定对象类的函数 class Foo { ... getWhatever(){ ... } } 在编译时,我的IDE不会抱怨任何事情。但是,在运行时,当我显式地执行该函数时,我得到: FooListComponent.html:2 ERROR TypeError: foo.getWhatever is not a function 在进行调试时,我清楚地

我正在自定义组件上使用模板内的HTML:


然后,在控制器中,我调用一个属于这个特定对象类的函数

class Foo {
      ...

      getWhatever(){
          ...
      }
}
在编译时,我的IDE不会抱怨任何事情。但是,在运行时,当我显式地执行该函数时,我得到:

FooListComponent.html:2 ERROR TypeError: foo.getWhatever is not a function
在进行调试时,我清楚地看到它不是一个Foo实例,而是一个普通对象。如果我尝试执行强制转换或任何类似的操作,没有什么能像Foo实例那样帮助我检索它


我的猜测是,它被视为来自模板的对象,我是否应该执行实例化加载程序或类似操作?

根据注释,您需要将响应映射到类实例以访问类方法:

this.http.get('foourl').pipe(map(fooResponse => new Foo(fooResponse))

这应该可以让您的代码正常工作,但值得怀疑的是,这通常是一个伟大的设计决策,因为在javascript环境中使用类和类方法往往会带来很多痛苦,因为字符串化和解析会丢失所有类功能。我倾向于功能性方法/风格。

你能给我一个建议吗?
getWhatever
是否与
getFirstSectionCode
相同?这些部分是如何组合在一起的?模板中的foo参数是什么?对id的引用#foo?@stachcoder foo是属于类的对象,它来自检索此实例的服务;@jonrsharpe是的,我已经编辑了这篇文章对不起,thxAny,它有可能来自HttpClient?在这种情况下,请查看我链接的所有内容-当然它只是一个普通对象,TS在运行时不存在,这就是JSON解析的目的。请注意:“使用接口而不是类;响应不能自动转换为类的实例。”除非您有显式代码实例化该类,它将是一个普通的物体。
this.http.get('foourl').pipe(map(fooResponse => new Foo(fooResponse))