我最近正好在改一个,原先那哥们只用了模板+路由+过渡的功能,为了实现类似 pjax 的效果,简直吊的飞起来。 那哥们连这个都玩不转,客户就找我了,我随手处理掉,几 K 大洋到手,客户还觉得用了 angularjs 就得付这个钱。哈哈
WarWithinMe
2016-01-23 18:07:13 +08:00
@zog require()不完全是 DI ,但可以把 require 改成一个 DI 框架。 如果在 A 模块(在文件 A.js 里面),写`require("../../FancyDependency")` 。通过依赖的路径来 require 这个依赖,是不符合 DI 的理念,因为你把具体要依赖的物体写死了。
如果在 A 模块里面,改成`require("FancyDependency")`。通过依赖的 ID 来 require 这个依赖的话,你就可以通过修改 require 的配置(在 A.js 外面,用于全局管理的地方修改。),让这个 require 语句可以根据配置来返回不同的值,例如生产环境返回 FancyDependencyProd ,测试环境返回 FancyDependencyDev 。这样就算是 DI 。