如果我用一个inject语句注入模块,它就能工作。如果我用三个inject语句注入模块,那么应用程序就不会加载。
我希望这两种方式都是等同的。
import {AuthService} from 'aurelia-auth';
import {bindable, inject, Aurelia} from 'aurelia-framework';
import {ValidationControllerFactory, ValidationController, ValidationRules} from 'aurelia-validation';
import {BootstrapFormRenderer} from './bootstrap-form-renderer';
//Works
//@inject(Aurelia, AuthService, ValidationControllerFactory)
//Does not work
@inject(Aurelia)
@inject(AuthService)
@inject(ValidationControllerFactory)
export class Login {
constructor(aurelia, authService, controllerFactory) {发布于 2016-10-23 17:06:19
由于装饰器是如何实现的,对inject装饰器的多次调用将无法工作。注入修饰器所做的是在类上创建静态inject()函数。因此,对注入修饰器的多次调用只会继续覆盖静态inject属性。
发布于 2016-10-23 15:43:31
您可以将static inject()用于这样的多个注入:
export class SampleModel {
static inject() { return [DatabaseService, AuthService, EventAggregator]; }
constructor(db, auth, events){
this.db = db;
this.auth = auth;
this.events = events;
}
}您可以阅读更多关于依赖注入的信息,在aurelia欺骗屎:http://aurelia.io/hub.html#/doc/article/aurelia/framework/latest/cheat-sheet/3中
https://stackoverflow.com/questions/40204495
复制相似问题