Javascript 如何在同一个Angular(Typescript)组件类中从另一个方法调用一个方法?

Javascript 如何在同一个Angular(Typescript)组件类中从另一个方法调用一个方法?,javascript,angular,Javascript,Angular,我看到一个奇怪的错误,我试图从另一个方法调用一个方法,而这两个方法都在同一个Angular 2 TypeScript组件中 在下面的代码中可以看到,当调用ngOnInit时,它启动method1。method1尝试调用此方法。method2。这就是问题所在。 出现的错误如下: 错误:无法读取未定义的属性“method2” 为什么这个对象的名称没有定义?我怎样才能绕过这个问题,这样我就可以从同一个类中的其他方法调用属于某个类的方法,就像在Java这样的语言中一样 import {Component

我看到一个奇怪的错误,我试图从另一个方法调用一个方法,而这两个方法都在同一个Angular 2 TypeScript组件中

在下面的代码中可以看到,当调用ngOnInit时,它启动method1。method1尝试调用此方法。method2。这就是问题所在。 出现的错误如下: 错误:无法读取未定义的属性“method2”

为什么这个对象的名称没有定义?我怎样才能绕过这个问题,这样我就可以从同一个类中的其他方法调用属于某个类的方法,就像在Java这样的语言中一样

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定义中是的,应该有效,否则。我看到的代码没有问题。