【问题标题】:Cannot call a function on an element inside ngFor Angular2无法在 ngFor Angular2 内的元素上调用函数
【发布时间】:2016-11-09 15:42:04
【问题描述】:

我有一个非常简单的课程

export class Foo {

    name: string;

    index: number;

    toFullString(): string {
        return `${this.name} | ${this.index}`;
    }
}

这是我的 ngFor:

<div *ngFor="let foo of foos">
    {{foo.toFullString()}};
</div>

我得到的是控制台中不存在该方法:

self.context.$implicit.toFullString 不是函数

我无法弄清楚这里出了什么问题。 foo.name 工作正常并输出所有元素。我想打字稿向对象添加方法的方式在角度 2 中搞砸了,但不知道该怎么做。

【问题讨论】:

  • 你迭代什么?您的“foos”(复数)在哪里定义?
  • 既然您已经问我,我认为问题出在哪里。我确实将此对象创建为来自 Web 服务器的演员表。然后他们显然对打字稿很好,但这不是真正的“类”。这件事已经让我很多次了 :( Typescript 的类型安全有时是个笑话。

标签: angular typescript ngfor


【解决方案1】:

我的猜测是您不是在更新课程,而是在进行转换或转换。

您需要使用带有名称和索引 constructor(public name, public index) { this.name = name; this.index = index; } 的关联构造函数执行 new Foo(nameParam, indexParam)

【讨论】:

  • 是的,我已经知道了 :) 提出一个新问题,如果它可以在这里做得更好:stackoverflow.com/questions/40511093/…
  • 我想我不会为了其他人在打字稿类型安全方面遇到问题而删除问题并接受您的回答。
  • 这与 TypeScript 的“类型安全”无关,这是 JavaScript 没有类型系统的唯一问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-11-05
  • 1970-01-01
  • 2019-05-16
  • 2016-11-06
  • 2016-11-02
  • 2017-07-05
  • 1970-01-01
相关资源
最近更新 更多