当前位置: 首页 > 知识库问答 >
问题:

模型中的Typescript方法给出错误“不是函数”[重复]

岳浩宕
2023-03-14

我有以下类型脚本模型:

export class ClaimProvider {
    id: string;
    name: string;

    slug(): string {
        let result = this.name.trim().toLowerCase();
        result = result.toLowerCase();
        result = result.replace(/&/g, '_');
        result = result.replace(/ /g, '_');
        return result;
    }
}

现在在Angular component中,我得到了一个API调用,它填充了我的对象的本地实例:

claimprovider: ClaimProvider;

this.claimProviderService.getCurrentClaimProvider(id)
  .pipe(first())
  .subscribe(
    result => {
      this.claimprovider = result;
      console.log(this.claimprovider);
    }
}

My console.log结果适当地显示了名称和id,因此API调用可以正常工作。

我的问题是,如果在同一点,我打电话:

console.log(this.claimprovider.slug())

然后我得到一个错误

错误类型错误:\ u this.claprovider.slug不是函数

我做错了什么?

编辑

这是我的getMONtClaimProvider方法:

public getCurrentClaimProvider(claimproviderId): Observable<ClaimProvider> {
    return this.http.get<ClaimProvider>(this.baseUrl + '/GetCurrentClaimProviderHeader?claimproviderid=' + claimproviderId);
}

共有1个答案

百里景山
2023-03-14

如下所示的Http调用:

this.claimProviderService.getCurrentClaimProvider(id)

将从服务器返回的结果映射到与定义的接口或类具有相同属性的对象。。。但不是类的实际实例。

所以您有id和name属性的对象。。。但不是实际的claider实例。

您必须手动将返回的数据映射到类的实例。

例如,您可以检查以下内容:Angular-TypeError:将循环结构转换为JSON

 类似资料:
  • 我正在一个WordPress网站上工作——它有大量的自定义代码和插件以及各种JQuery、引导和框架加载。 在最后一个加载页脚的最底部-I处: 我得到了错误: 显然,JQuery已经加载。我也尝试过在那里放置其他JQuery——除了加载的JQuery之外——我得到了相同的错误。 为什么我会得到$nota函数错误?

  • 在下面的查询中,我使用了strftime函数来获取字符串格式的日期。它在sqlite数据库中运行良好。但是,当数据库更改为进程时,它抛出了一个错误,即“SQLSTATE[42883]:未定义函数:7错误:函数strftime(未知,没有时区的时间戳)不存在” 下面的代码在SQLite中工作,但在Postgres数据库中引发了一个错误

  • 代码是: 我得到以下TS错误: "[ts]类型"string"的参数不能分配给类型"ever"的参数。" 我做错了什么?这是虫子吗?

  • 尝试从组件订阅HTTP-GET的解析响应。得到一个错误的说法。无论是从HTTPService还是从组件类使用,map都不是一个函数。 但以下工作: 解析在Httpdemo服务中也不起作用。 我的代码中的用法有什么问题?

  • 问题内容: 我正在使用Python编写一些加密算法,但是我以前从未使用过Python。 首先,看一下这段代码,然后我将解释这个问题, x和y的值为, 我不明白代码的第三行。为了理解第三行,我不得不研究函数,我遇到了这个问题, zip函数帮助元组 根据这个问题的答案,代码, 将输出, 但是当我尝试打印时, 我得到这个输出, 为什么我的输出与原始输出不同? 问题答案: 在Python 3中返回一个迭代