注入的依赖项为空
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 组件。
下面是我的两个类。登录并 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 组件。