寻求JavaScript专家的建议 - 有没有更好的(更安全?)的方法
?我正在编写使用 angularjs(客户端)和 pongular(服务器端)的 DI 语法的模块。
di = (typeof window!='undefined') && window.angular || require('pongular').pongular
di.module 'thecrewApp'
.factory 'fbRoot', ['fbUrl', 'Firebase', (fbUrl, Firebase)-> new Firebase(fbUrl)]
我的客户端角度应用可以使用此可注射对象,我的服务器端节点应用也可以。 我为客户端和服务器上使用的一堆注射剂执行此操作。
有没有更好的表达方式? 第一行,我根据窗口类型选择要使用的 DI 引擎...感觉很笨拙。
我可以想到一些可能的解决方案:
- 在共享文件中仅包含依赖项数组和函数调用(例如
module('moduleName').factory(["$http", function($http) { ... }]);
),并使用预处理器用angular.
或pongular.
包装文件 -
在一个环境中全局定义角度或圆角。或者,全局定义一个返回正确引用的函数,例如
// in the browser function require() { return angular; }
然后,您的所需代码将跨环境工作。
- 研究使用 ES6 模块。