angular - 不是一个函数Angular 2
问题描述
我刚刚开始使用 angular 2 和打字稿。当我从 .ts 文件导入类时,编译成功但抛出错误
不是函数 _co.upchange
使用时(click)
。
更新.ts
export class Update {
name:string;
}
export class Changeable {
upchange (value) {
console.log(value);
}
}
更新组件.ts
import { Component, OnInit } from '@angular/core';
import { Update } from './Update';
import { Changeable } from './Update';
@Component({
selector: 'app-update',
templateUrl: './update.component.html',
styleUrls: ['./update.component.css']
})
export class UpdateComponent implements OnInit {
update:Update = {
name:'Bhavya',
}
constructor() { }
ngOnInit() {
}
}
解决方案
这段代码:
update:Update={
name:'Bhavya',
}
正在使用 Update 类的SHAPE定义一个对象……但它不是该类的实例。
如果您打算在对象上调用方法,则需要创建对象的实例,如下所示:
update = new Update();
ngOnInit() {
this.update.name = 'Bhavya';
}
但是正如其他人所说,您调用的方法在 Changeable 类中?
考虑按如下方式更改代码:
export class Update {
name:string;
constructor(name: string) {
this.name = name;
}
upchange(value) {
console.log(value);
}
}
然后你可以简单地这样做:
update = new Update('Bhavya');
但是查看调用upchange
函数的 HTML 会很有帮助。
更新
如上所示,将函数定义为类中的方法upchange
。请注意,我们不必使用关键字function
。
调用函数如下:
this.update.upchange('somevalue');
使用实例变量而不是类名来调用它。如果要使用类名调用方法,请使用静态方法。但请注意,静态方法不应保留状态。
有关更多信息,请参见:https ://github.com/Microsoft/TypeScript/blob/master/doc/spec.md#821-instance-and-static-members
推荐阅读
- python - 在 VSCode 活动终端中使用 IPython 运行选择
- python - 将数据从 postgresql 提取到 pyspark 数据帧时,我应该使用模式吗
- python - 使用python在docx文件中添加水印文本的方法是什么?
- php - 如何从国家/地区获得运费?
- vb.net - 是/否 MessageBox 的默认焦点按钮
- c# - 网格视图以动态添加行,但在插入时获取空白值
- spring-boot - 使用 Spring Boot 安全性时未显示初始登录页面
- node.js - [Nodejs - worker-threads]:主线程是否可以选择等待所有工作线程完成?
- macos - 带有 COUNT 查询的 Cassandra 超时
- android - 在android中制作响应式视图