如何在 Aurelia 中使用注入 class 的函数?

How to use a function from injected class in Aurelia?

如何在 Aurelia 中使用注入 class 的函数?在我的例子中,我正在调用一个 login() 函数(在登录页面上)并希望从 Test Class 中打印出 testMessage。不幸的是,我在 Chrome 中收到以下错误:"Uncaught TypeError: Cannot read property 'getTestMessage' of undefined".

test.js

export class Test {
    constructor() {
        this.testMessage = "test";
    }

    getTestMessage() {
        return this.testMessage;
    }
}

login.js

import {inject} from 'aurelia-framework';
import {Test} from 'test';

@inject(Test)
export class LogIn { 
  constructor(test) {
    this.test = test;
  }

  login(){
    console.log("login");
    this.test.getTestMessage();
  }
}

你的代码没有问题。我将它复制到一个测试应用程序并且它起作用了。问题很可能出在您没有在问题中透露的部分:您如何调用 login 方法。

<a href="#" click.delegate="login()">Login</a>

在我的测试示例中,view-model 注入测试和后续 HTML 视图使用 click.delegate 调用 login 方法。你是如何调用方法的?