什么是“静态注入...”
What is `static inject...`
中找到了这行代码
static inject = [DialogService];
这是完整的 class:
import {Prompt} from './prompt';
import {DialogService} from '../dialog-service';
export class CommonDialogs {
static inject = [DialogService];
constructor(dialogService){
this.dialogService = dialogService;
}
prompt(question){
return this.dialogService.open({viewModel:Prompt, model:question});
};
}
static inject
在做什么?我知道它正在将对话服务注入构造函数。但是为什么要这样做而不是通常的注入?
正如您链接到的博客 post 提到的那样,static inject
是进行依赖注入的原始方法。一旦 Babel 开始支持装饰器,我们就实现了 inject
装饰器,使 Aurelia 代码看起来更漂亮。在幕后,它只是在运行时将 inject
属性 添加到 class (https://github.com/aurelia/dependency-injection/blob/master/src/decorators.js#L13).
static inject = [DialogService];
这是完整的 class:
import {Prompt} from './prompt';
import {DialogService} from '../dialog-service';
export class CommonDialogs {
static inject = [DialogService];
constructor(dialogService){
this.dialogService = dialogService;
}
prompt(question){
return this.dialogService.open({viewModel:Prompt, model:question});
};
}
static inject
在做什么?我知道它正在将对话服务注入构造函数。但是为什么要这样做而不是通常的注入?
正如您链接到的博客 post 提到的那样,static inject
是进行依赖注入的原始方法。一旦 Babel 开始支持装饰器,我们就实现了 inject
装饰器,使 Aurelia 代码看起来更漂亮。在幕后,它只是在运行时将 inject
属性 添加到 class (https://github.com/aurelia/dependency-injection/blob/master/src/decorators.js#L13).