加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Angular 2模型函数插值 – self.context.$implicit.X不是函数

发布时间:2020-12-17 17:27:20 所属栏目:安全 来源:网络整理
导读:所有, 尝试绑定到模型上的函数时出错 我有以下组件,模型和 Html(这个例子都是假的) export class TestModel { public getSomeValue(): string { return "Hello World"; }} 让我们假设testModels属性以某种方式获取它的数据. @Component(...)public class MyC
所有,

尝试绑定到模型上的函数时出错

我有以下组件,模型和& Html(这个例子都是假的)

export class TestModel {    
  public getSomeValue(): string {
     return "Hello World";
  }
}

让我们假设testModels属性以某种方式获取它的数据.

@Component(...)
public class MyComponent {    
  public testModels: TestModel[];

  ngOnInit() {
    this.loadData();
  }

  public loadData(): void
  {
     this.http.get("...")
     .map(r=>r.json as TestModel[]) // <--- I think now you've asked the question,I see the problem on this line
     .subscribe(d=>this.testModels = d);

  }
}

现在在我的HTML中

<div *ngFor="let testModel of testModels">
  <span>{{testModel.getSomeValue()}}</span> <!-- This fails -->
</div>

这是完整的错误:

error_handler.js:48 EXCEPTION: Error in
./MyComponent class MyComponent- inline template:94:56 caused by:
self.context.$implicit.getSomeValue is not a function

是不可能绑定到.getSomeValue()或我这样做错了吗?

我假设基于这个self.context.$implicit.它以某种方式失去了它的上下文,并没有在模型上调用方法,而是试图在“它是自我”上调用它什么呢?

谢谢

小号

编辑:添加代码以显示如何实例化testModels

解决方法

因为TestModel []没有使它成为TestModel.它只是告诉typescript编译器(和linter)它可以安全地假设r.json是TestModel [].

另见JSON to TypeScript class instance?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读