创建在 Aurelia 中使用依赖注入的类的新实例

2023-12-19

我想创建一个能够创建使用依赖注入的类(MyClass,实现抽象类)的新实例的工厂。

我希望工厂看起来像这样:

Factory

export class Factory {

  public static makeMyClass() {
    return new MyClass();
  }

}

但是,当我采用这种方法时,EventAggregator 不会注入到 MyClass 中。

我怎样才能做到这一点?

界面

export abstract class MyClassInterface {

  abstract connect();
  abstract disconnect();
  abstract send(message: string);

}

Class

@inject(EventAggregator)
export class MyClass {

  constructor(EventAggregator) {}

  connect() {}
  disconnect() {}
  send(message: string) {}

}

提前致谢!


第一个选项

Use the NewInstance.of http://aurelia.io/docs/fundamentals/dependency-injection#resolvers解析器:

import {inject, NewInstance} from 'aurelia-framework';

@inject(NewInstance.of(MyClass))
export class MyViewModel {
   constructor(myClass) {
     this.myClass = myClass; //myClass is always a new instance
   }
}

第二个选项

使用工厂:

import {inject, EventAggregator} from 'aurelia-framework';

@inject(EventAggregator)
export class MyFactory {

  constructor(eventAggregator) {
    this.eventAggregator = eventAggregator;
  }

  public static createMyClass() {
    return new MyClass(this.eventAggregator);
  }
}

@inject(MyFactory)
export class MyViewModel {

  constructor(myFactory) {
    this.myClass = myFactory.createMyClass();
  }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

创建在 Aurelia 中使用依赖注入的类的新实例 的相关文章

  • Aurelia 验证:对同一属性应用一些关于更改的规则和一些关于模糊的规则

    我有一个值的输入字段 该值应该正好有 5 位数字 我想在立即输入数字以外的字符 onChange 时显示错误 但仅在模糊时显示字符串长度不足的错误 我的规则目前看起来是这样的 ValidationRules ensure myInput m
  • 在 MVC 中使用 DI 时的大量控制器构造函数参数列表

    我正在开发 ASP NET MVC3 解决方案 该解决方案使用 autofac 的依赖注入 我们的控制器由 autofac 正确创建 所有必需的对象都正确传入 这些对象通常包括服务 存储库和将域对象转换为 MVC 视图 模型的映射器 所以控
  • 将 Mockito 模拟注入 Spring bean

    我想将 Mockito 模拟对象注入到 Spring 3 bean 中 以便使用 JUnit 进行单元测试 我的 bean 依赖项当前是通过使用注入的 Autowired私有成员字段上的注释 我考虑过使用ReflectionTestUtil
  • 在 Fragment 和 Activity 之外通过 Hilt 进行现场注入

    我想知道是否可以在片段或活动之外使用字段注入 我知道我可以使用构造函数注入 但是我想知道是否也可以使用字段注入 我认为 Dagger 是可能的 当我尝试用注入的东西做某事时yclass字段我收到此错误 lateinit property y
  • 在 AngularJS 中覆盖运行时的依赖关系

    我有一个服务叫 doggedHttp 它公开了与 http 现在我想创建一个 doggedResource服务是有角度的 resource服务之上 doggedHttp代替 http 换句话说我想注入 doggedHttp as the h
  • 如何为 asp.net MVC 5 配置 StructureMap

    我遇到以下错误 我的设置与 asp net mvc 4 类似 没有为此对象定义无参数构造函数 描述 安 当前网页执行期间发生未处理的异常 要求 请查看堆栈跟踪以获取有关的更多信息 错误及其在代码中的起源 异常详细信息 System Miss
  • C 中的 N 依赖注入 - 比链接器定义的数组更好的方法?

    Given a 库模块 在下文中称为Runner 它作为可重复使用的组件 无需重新编译 即静态链接库 中应用程序分区架构的 而不是主分区 请注意 它仅包含main 出于演示目的 Given a set 顺序无关 调用的其他模块 对象Call
  • DI:IDisposable 对象的处理寿命

    所以我正在开发我的 DI IoC 容器OpenNETCF IoC http ioc codeplex com我有一个 合理的 功能请求 为容器集合中的 IDisposable 项目添加某种形式的生命周期管理 我目前的想法是 由于我无法查询对
  • 依赖注入的惰性解析

    我有 net 课程 我使用 Unity 作为 IOC 来解决我们的依赖关系 它尝试在开始时加载所有依赖项 Unity中有没有一种方法 设置 允许在运行时加载依赖项 还有更好的解决方案 Unity 2 0 中对 Lazy 和 IEnumera
  • Dagger2 - 项目重建错误 - 字段注入 - Android

    我一直在尝试实现 Dagger2 Problem 当我使用构造函数注入时 它工作正常 但是当我使用字段注入时 它会抛出如下错误 Error 6 48 error cannot find symbol class DaggerApplicat
  • AngularJS - 服务、工厂、过滤器等中的依赖注入

    因此 我想在我的 Angular 应用程序中使用一些插件和库 目前 我只是引用这些函数 方法 因为它们是在 99 的应用程序中以完全忽略依赖注入的方式使用的 我有 例如 javascript 库 MomentJS 它处理格式化和验证日期 并
  • 如何将窗口注入到服务中?

    我正在用 TypeScript 编写一个 Angular 2 服务 它将利用localstorage 我想注入对浏览器的引用window对象到我的服务中 因为我不想引用任何全局变量 例如 Angular 1 x window 我怎么做 这目
  • 实体框架 4 DB 优先依赖注入?

    我更喜欢创建自己的数据库 设置索引 唯一约束等 使用 edmx 实体框架设计器 从数据库生成域模型是轻而易举的事 现在我有兴趣使用依赖注入来设置一些存储库 我查看了 StackOverflow 上的一些文章和帖子 似乎重点关注代码优先方法
  • Guice:使用@Named创建对象

    使用Guice 如果我有的话 Inject Named light Color light 我可以用 bind Color class annotatedWith Names named light toInstance new Color
  • Aurelia - 仅 HTML 自定义元素的内联定义

    我的 Aurelia 视图模型中有一个递归对象 如下所示 Class BottomlessPit Name string MorePits BottomlessPit null 因此 我想在 Aurelia 视图中使用递归模板 它只会在一个
  • 使用 PHPUnit 和 Mockery 进行 Laravel 测试 - 设置控制器测试的依赖关系

    在终于通过了我愚蠢的简单测试后 我有一种感觉 我做得不对 我有一个 SessionsController 负责显示登录页面并让用户登录 我决定不使用外观 这样我就不必扩展 Laravel 的 TestCase 并在单元测试中承受性能影响 因
  • 创建新实例,同时仍然使用依赖注入

    环境的快速描述 我有一个代表聊天室并依赖于记录器的类 它与具有横切关注点的系统范围记录器不同 而是与特定聊天室绑定的记录器 它将该聊天室中的所有活动记录到其唯一的日志文件中 当聊天室创建时 我想打开日志文件 当聊天室被销毁时 我想关闭日志文
  • CreationException:无法在 Play 2.5.18 中创建注入器错误,以使用 com.google.inject.AbstractModule 替换 GlobalSettings Java 代码

    我正在将 Play 应用程序从 2 5 12 升级到 2 5 18 当我启动该应用程序时 使用sbt 我收到此错误 CreationException 无法创建注入器 看到以下错误 1 Error injecting constructor
  • 获取在 Unity 中实现接口的所有类型

    如果您只想知道解决方案 请跳至更新 我有一个应用程序 它使用以下代码来获取并运行许多工作方法 var type typeof IJob var types AppDomain CurrentDomain GetAssemblies Sele
  • AngularJS:服务、提供商、工厂

    之间有什么区别Service Provider and Factory在 AngularJS 中 从我得到的 AngularJS 邮件列表一个惊人的线程 https groups google com forum msg angular 5

随机推荐

  • EF core 5 多对多过滤器

    这是我的查询 public async Task
  • 量角器无法单击 元素内嵌入的

    我有两个嵌入式 span 里面的元素 a 元素 我需要在第二个触发点击事件 span The by id方法上的id我创建的类没有触发点击 我也尝试过by binding但这不起作用 请帮助 代码 div class add player
  • 使用 JavaScript 添加微数据

    我有一个基于 Javascript 和 php 的评级系统 每个页面上都会显示结果 X 票 moyenne X X 是数字 moyenne 表示 平均符号 我想要 javascript 添加微数据信息 源代码应该显示如下内容 span X
  • python 仅使用 urllib2 获取标头

    我必须使用 urllib2 实现一个仅获取标头的函数 不执行 GET 或 POST 这是我的功能 def getheadersonly url redirections True if not redirections class MyHT
  • Windows 10 下多核处理器上的 QueryPerformanceCounter 行为不稳定

    在 Windows 下 我的应用程序使用QueryPerformanceCounter and QueryPerformanceFrequency 来执行 高分辨率 时间戳 自 Windows 10 以来 到目前为止仅在 Intel i7
  • 如何在 Julia/JuMP 中以总和表示法“for all”

    我正在尝试使用 JuMP 对 Julia 中的线性优化问题添加约束 我正在使用sum 但是 我在某些限制方面遇到了麻烦 有谁知道JuMP中的 for all 倒过来的A 怎么写 这是我到目前为止的代码 using JuMP m Model
  • 如何将 EditText 和 Button 放在一起?

    我想尝试让 EditText 和 Button 彼此相邻 我目前的位置是按钮位于右侧 编辑文本左对齐 但按钮显示它位于 EditText 的顶部 我希望按钮从 EditText 结束的地方开始 这就是我现在所拥有的
  • 根据上游任务的输出在气流中生成动态任务

    如何根据上游任务返回的列表动态生成任务 我已经尝试过以下方法 使用外部文件从列表中写入和读取 此选项有效 但我正在寻找更优雅的解决方案 Xcom 拉进了一家 subdag 工厂 这是行不通的 我能够将列表从上游任务传递到子dag 但 xco
  • 使用dompdf访问远程图像的安全问题

    我正在使用 dompdf 生成 PDF 文件 该文件从 highcharts js 导出库获取一些图像 动态图表 现在我必须将 DOMPDF ENABLE REMOTE 的默认设置从 false 更改为 true 以使 dompdf 能够包
  • 多个方法参数上的 @Cacheable 键

    来自弹簧文档 http static springsource org spring docs 3 1 0 M1 spring framework reference html cache html Cacheable value book
  • 如何在没有响应标头的情况下显式终止来自服务器的 http 连接

    我正在为我的一个客户端应用程序开发一个服务器模拟器 我正在使用 GlassFish 服务器 我必须在我的服务器应用程序中模拟 http 连接终止条件 有没有一种方法可以显式终止来自服务器端的连接 以便客户端不会收到任何响应标头 目前我已经尝
  • sudo pip 安装 django

    这是我第一次尝试安装 Django 当我运行它时 它成功安装了 Django 1 7 3 但我收到了下面的这些警告 我无法在网上找到任何有关它的信息 所以我希望有人能够澄清它们的含义 如果我需要修复它们 以及我该如何去做 谢谢 下面是我的终
  • 如何在 SwiftUI 中添加键盘工具栏,即使键盘不可见,该工具栏仍然保留

    我有一个聊天应用程序 想要在键盘上添加一个工具栏 类似于 SwiftUI 之前的 inputAccessoryView 我知道 iOS15 现在可以选择使用以下内容添加工具栏 来自 hackingwithswift toolbar Tool
  • bash:截断文件名,保持它们唯一

    我使用类似于此的 for 循环将文件夹中的所有文件名截断为 16 个字符 for i in do Shortname i 0 16 Let s assume I don t need the extension mv i Shortname
  • Playwright C# - 处理 Toast 消息

    我试图使用剧作家检查祝酒消息的内容 但找不到合适的方法来实现这一目标 剧作家文档列出了一种处理警报消息的合适方法 我可以使用该方法在解除警报之前检索警报中的文本内容 例如 Page Dialog dialog gt alertMessage
  • 图发生率列表实现

    我正在考虑图形数据结构实现 并正在查看 发生率列表 表示 这里有一个简单的描述 发生率列表 http en wikipedia org wiki Incidence list 因此图中的每个顶点都存储它所关联的边的列表 鉴于我的图是有向图
  • 使用 std::cout 正确地用零填充负整数

    我发现这个问题已经被问过 但每个人给出的答案都是 std cout lt lt std setw 5 lt lt std setfill 0 lt lt value lt lt std endl 这对于正数来说很好 但是对于 5 它会打印
  • 我可以在 Kubernetes Pod 中运行 Google Monitoring Agent 吗?

    看来谷歌监控代理 供电堆栈驱动程序 https cloud google com monitoring agent install agent应安装在每个Node 即每个计算实例 即每台机器 库伯内斯簇 然而新的plugins like N
  • 如何在 OAuth 同意屏幕中启用内部选项?

    当我尝试在 OAuth 同意屏幕中选择 内部 选项时 它告诉我 因为您不是G Suite用户 所以您只能制作您的应用 可供外部 一般受众 用户使用 我怎样才能启用这个选项 制作内部应用程序的唯一方法是从 gsuite 域帐户创建项目 通过您
  • 创建在 Aurelia 中使用依赖注入的类的新实例

    我想创建一个能够创建使用依赖注入的类 MyClass 实现抽象类 的新实例的工厂 我希望工厂看起来像这样 Factory export class Factory public static makeMyClass return new M