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