淘汰内部/外部模块!==瞬态/单身生活方式?

时间:2015-09-22 21:45:09

标签: javascript knockout.js typescript durandal amd

当使用IoC容器时,我可以指定当需要给定的依赖项时,每次传入一个新对象,或者传入的对象总是相同的实例。

我原以为内部和外部模块分别提供了这个功能,但现在我不太确定。另外,我发现在使用“内部”模块时,我在Knockout中的自定义绑定会收到“未定义”作为viewModel参数。

如何在外部模块中选择单例和瞬态?

我在TypeScript中使用了Durandal(Knockout,RequireJS)。

1 个答案:

答案 0 :(得分:1)

  

"未定义"当使用"内部"时作为viewModel参数模块

这是与JavaScript发出排序有关的常见错误。更多相关信息:https://github.com/TypeStrong/atom-typescript/blob/master/docs/out.md

  

当使用IoC容器时,我可以指定当需要给定的依赖项时,每次传入一个新对象,或者传入的对象总是相同的实例。

外部模块系统与IoC容器不同。模块是 singleton ,您始终可以获得相同的实例。如果你想让不同的实例让你的模块导出一个函数(它可以作为你真正想要的对象的工厂)。