我是Javascript和TypeScript的新手,我想知道是否可以进行某种依赖注入(可能使用require.js)
我在同一个模块中有两个类
module MyWebApp {
export class ViewRouter {
... some class methods
}
}
module MyWebApp {
export class MyViewModel{
private router: ViewRouter;
constructor(router:ViewRouter router) {
this.router = router;
}
}
}
每次我需要MyViewModel时,我都必须实例化ViewRouter
var vm = new MyViewModel(new ViewRouter());
这有什么办法吗?我认为Require.js可以帮助我解决我的问题,但我不知道如何使用TypeScript。
谢谢。
答案 0 :(得分:1)
如果您希望每次新实例,您应该这样做:
class MyViewModel{
private router: ViewRouter;
constructor() {
this.router = new ViewRouter();
}
}
现在,如果您想要“单个”共享实例,您可以执行以下操作:
module MyWebApp {
export class ViewRouter {
... some class methods
}
export var router = new ViewRouter();
}
并使用router
使用RequireJS可以为您做同样的事情,但主要想法不会改变。 RequireJS不是IOC容器。
那里有很多javascript IOC容器,我对此没有建议:Google search