Skip to content

Dependency Lookup

In addition to Dependency Injection, Vona also provides Dependency Lookup. In Vona, it is recommended to use dependency lookup, because dependency lookup can make the code more concise and intuitive

Dependency Lookup in current module

In the module demo-student, lookup the ServiceStudent provided by this module. The code is as follows:

typescript
class ControllerStudent {
  async findMany() {
    return await this.scope.service.student.findMany();
  }
}

Get the scope object of this current module through this.scope to lookup the service provided by this module

Dependency Lookup Cross-module

In other modules, lookup the ServiceStudent provided by the module demo-student, the code is as follows:

typescript
class ControllerOther {
  async findMany() {
    return await this.$scope.demoStudent.service.student.findMany();
  }
}

Get the scope object of the module demo-student through this.$scope.demoStudent to lookup the service provided by the module demo-student

Lookup global service beans

In the module demo-student, lookup the global service bean BeanJwt provided by the module a-jwt. The code is as follows:

typescript
class ControllerStudent {
  async test() {
    return await this.bean.jwt.create({});
  }
}

Get the app container through this.bean to lookup the global service bean

Released under the MIT License.