注入的依赖项为空

Injected dependency is null

下面是我的两个类。登录并 Activity。我想将登录名注入 Activity。这发生在已经执行登录并设置了参数之后。在文件 2 中,login.UserName 始终是未定义的,我尝试绑定的任何其他项目都是未定义的。我是否缺少正确绑定的任何内容?

//file 1
import {autoinject} from 'aurelia-framework';
import {HttpClient, json} from 'aurelia-fetch-client';
import {bindable} from 'aurelia-framework';
import 'fetch';

@autoinject
export class Login{
    @bindable UserName:String

    constructor(private http: HttpClient){
        ...redacted...
    }

    login(){
       this.UserName="test";
    }
}


//file 2
import {autoinject} from 'aurelia-framework';
import {HttpClient, json} from 'aurelia-fetch-client';
import 'fetch';
import {Login} from 'login/src/login';

@autoinject
export class Activity {
    Login: Login;

    constructor(private http: HttpClient, private login: Login) {
      ...redacted...
      this.Login=login;
    });
}

我认为 Activity class / 自定义元素正在注入 Login class / 自定义元素的不同实例。尽管这些项目通常具有容器控制的 "singleton" 生命周期,但 UI 组件却没有。我认为你可以通过将 @singleton 添加到你的 Login ui 组件来获得你必须工作的东西,但你最好创建一个单独的 class,可能称为 "User" 你可以同时注入 Login UI 组件和 Activity UI 组件。