我在Aurelia Dialog中找到了这行代码
static inject = [DialogService];
Run Code Online (Sandbox Code Playgroud)
这是全班:
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});
};
}
Run Code Online (Sandbox Code Playgroud)
什么是static inject做什么?我知道它是将对话框服务注入构造函数.但为什么这样做而不是通常注入?
正如您提到的博客文章,static inject是进行依赖注入的原始方式.一旦Babel开始支持装饰器,我们就实现了inject装饰器,使Aurelia代码看起来更好一些.在幕后,它只是inject在运行时将属性添加到类中(https://github.com/aurelia/dependency-injection/blob/master/src/decorators.js#L13).
| 归档时间: |
|
| 查看次数: |
1852 次 |
| 最近记录: |