【发布时间】:2016-10-06 15:20:09
【问题描述】:
我正在编写一个 Aurelia 应用程序,并且我已经在 aurelia 容器中注册了一个类的实例。现在,当我对用户进行身份验证时,必须修改该实例。如何从代码中的任何位置修改原始实例?
【问题讨论】:
-
我知道您只是想查看下面的答案。其中之一是真的好。
标签: dependency-injection typescript aurelia
我正在编写一个 Aurelia 应用程序,并且我已经在 aurelia 容器中注册了一个类的实例。现在,当我对用户进行身份验证时,必须修改该实例。如何从代码中的任何位置修改原始实例?
【问题讨论】:
标签: dependency-injection typescript aurelia
如果你想遵循依赖注入模式,你需要将该实例注入到任何想要修改实例的类中。
import { inject } from 'aurelia-framework'
import { MyClass } from './my-class';
@inject(MyClass)
export class MyViewModel {
constructor(MyClass) {
this.myClass = MyClass;
}
somethingSpecial() {
this.myClass.foo = 'bar';
}
}
【讨论】:
Container 本身并使用它从函数中获取类等。
如何从代码中的任何位置修改原始实例
最好将实例放在模块中。然后还公开修改实例的函数。例如
let foo = {}
export function getFoo(){return foo}
export function setFoo(bar){ /* do something */}
【讨论】: