【问题标题】:Shared client & server modules with angularjs and pongular使用 angularjs 和 pongular 共享客户端和服务器模块
【发布时间】:2015-02-27 09:46:45
【问题描述】:

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

我的客户端 Angular 应用程序可以使用这种可注入程序,我的服务器端节点应用程序也可以。我这样做是为了在客户端和服务器上使用的一堆注射剂。

有没有更好的表达方式?第一行,我根据 typeof window 选择使用哪个 DI 引擎...感觉很hacky。

【问题讨论】:

  • 也许添加 function require() { return angular; } 到您的浏览器端代码...?
  • 另外,考虑使用 ES6,前端使用 babel 或 traceur。
  • 定义 require 是一个很好的提示,建议将其作为答案,太棒了,谢谢!

标签: angularjs node.js dependency-injection coffeescript


【解决方案1】:

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

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

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

那么你的 require 代码就可以跨环境工作了。

  • 研究使用 ES6 模块。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-22
    • 2015-12-29
    • 2018-05-13
    • 1970-01-01
    • 2021-03-10
    • 2014-06-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多