使用 angularjs 和 pongular 共享客户端和服务器模块



寻求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 模块。

最新更新