Javascript 如何在同一个Angular(Typescript)组件类中从另一个方法调用一个方法?
我看到一个奇怪的错误,我试图从另一个方法调用一个方法,而这两个方法都在同一个Angular 2 TypeScript组件中 在下面的代码中可以看到,当调用ngOnInit时,它启动method1。method1尝试调用此方法。method2。这就是问题所在。 出现的错误如下: 错误:无法读取未定义的属性“method2” 为什么这个对象的名称没有定义?我怎样才能绕过这个问题,这样我就可以从同一个类中的其他方法调用属于某个类的方法,就像在Java这样的语言中一样Javascript 如何在同一个Angular(Typescript)组件类中从另一个方法调用一个方法?,javascript,angular,Javascript,Angular,我看到一个奇怪的错误,我试图从另一个方法调用一个方法,而这两个方法都在同一个Angular 2 TypeScript组件中 在下面的代码中可以看到,当调用ngOnInit时,它启动method1。method1尝试调用此方法。method2。这就是问题所在。 出现的错误如下: 错误:无法读取未定义的属性“method2” 为什么这个对象的名称没有定义?我怎样才能绕过这个问题,这样我就可以从同一个类中的其他方法调用属于某个类的方法,就像在Java这样的语言中一样 import {Component
import {Component, OnInit} from '@angular/core';
@Component({
selector: 'my-dashboard',
moduleId: module.id,
templateUrl: './dashboard.component.html',
styleUrls: [ './dashboard.component.css' ]
})
export class DashboardComponent implements OnInit {
constructor() {
}
ngOnInit(): void {
this.method1();
};
method1(): void {
this.method2();
};
method2(]): void {
console.log("hi");
}
}
这是不可运行的,因此我无法自己测试此解决方案,但请尝试将函数重命名为This.method2,而不仅仅是method2。这是不可运行的,因此我无法自己测试此解决方案,但是请尝试将函数重命名为this.method2,而不仅仅是method2。我在这里复制了您的确切代码,但从method2的参数中删除了不寻常的“]”,它工作正常。我还添加了一个按钮,可以根据需要多次调用Method1 我的建议是,从组件元数据中删除moduleId:module.id,然后重试。当它在里面的时候,即使是Plunker也不起作用 更新: 所有关于moduleId的提及都被删除了。组件相对路径手册已删除2017-03-13- app.ts:
@Component({
selector: 'my-app',
template: `
<div>
<h2>Hello {{name}}</h2>
<button (click)="method1()">Invoke Method 1</button>
</div>
`,
})
export class App implements OnInit{
name:string;
constructor() {
this.name = `Angular! v${VERSION.full}`
}
ngOnInit(): void {
this.method1();
};
method1(): void {
this.method2();
};
method2(): void {
alert("hi");
}
}
我在本文中复制了您的确切代码,但从method2的参数中删除了不寻常的“]”,它工作正常。我还添加了一个按钮,可以根据需要多次调用Method1 我的建议是,从组件元数据中删除moduleId:module.id,然后重试。当它在里面的时候,即使是Plunker也不起作用 更新: 所有关于moduleId的提及都被删除了。组件相对路径手册已删除2017-03-13- app.ts:
@Component({
selector: 'my-app',
template: `
<div>
<h2>Hello {{name}}</h2>
<button (click)="method1()">Invoke Method 1</button>
</div>
`,
})
export class App implements OnInit{
name:string;
constructor() {
this.name = `Angular! v${VERSION.full}`
}
ngOnInit(): void {
this.method1();
};
method1(): void {
this.method2();
};
method2(): void {
alert("hi");
}
}
这是打字错误吗?在method2定义中是的,应该有效,否则。我看到的代码没有问题。是不是输入错误?在method2定义中是的,应该有效,否则。我看到的代码没有问题。