正在寻求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)]


我的客户端角度应用程序可以使用此可注入对象,我的服务器端节点应用程序也可以使用。我这样做是针对一堆在客户端和服务器上都使用的注射剂。

有没有更好的表达方式?第一行,我在其中基于typeof窗口选择要使用的DI引擎...感觉很棘手。

最佳答案

我可以想到一些可能的解决方案:


仅在共享文件中包含依赖项数组和函数调用(例如module('moduleName').factory(["$http", function($http) { ... }]);),并使用预处理器将文件包装为angular.pongular.
在一个环境中全局定义角度或倒影。或者,全局定义一个返回正确引用的函数,例如

// in the browser
function require() { return angular; }



然后,您的需求代码将跨环境工作。


研究使用ES6模块。

关于angularjs - 与angularjs和pongular共享的客户端和服务器模块,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27718823/

10-11 05:40