aurelia - 什么是 `static inject...`

标签 aurelia

我在 Aurelia Dialog 中找到了这行代码

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正在做?我知道它正在将对话服务注入(inject)构造函数。但是为什么这样做而不是通常的注入(inject)呢?

最佳答案

正如您链接到的博客文章所提到的,static inject是进行依赖注入(inject)的原始方式。一旦 Babel 开始支持装饰器,我们就实现了 inject装饰器使 Aurelia 代码看起来更好。在幕后,它只是简单地添加了 inject属性在运行时( https://github.com/aurelia/dependency-injection/blob/master/src/decorators.js#L13 )。

关于aurelia - 什么是 `static inject...`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31864658/

相关文章:

javascript - 有没有比在 app.js 上绑定(bind)模块名称更好的方法来动态加载 View 模型和 View 以显示模式?

javascript - Protractor :If 语句如果元素包含特定文本

javascript - 将 'scripts' 文件夹添加到 Aurelia 项目中的 .gitignore?

Aurelia - click.delegate 错误 - 说该函数不是函数

javascript - Aurelia:如何使用 npm 包中的 View / View 模型?

aurelia - 为 Aurelia cli 工具运行 'au new' 时出错

javascript - Aurelia - 无法使用 typescript skeeton 使 asp net core 工作

javascript - AureliaJS - 用模板替换循环元素(传递值?)

aurelia - 使用 Visual Studio 配置 Aurelia 项目

javascript - 使用 Aurelia 路由器获取错误 "Unable find module with ID"