angularjs和node.js之间共享库的模式
Pattern for sharing a library between angularjs and node.js
如何在angularjs和node.js之间共享库?
例如,angularjs服务通常是一段可重用的代码。让我们以URL库为例(挑选并构造URL)。
在node.js.中应该可以使用相同的库
我的限制是我想共享库代码,但我不想将自己限制在浏览器端的任何加载程序库。因此,如果我需要在浏览器中使用RequireJS,我需要禁用任何加载部分,以便在其他地方进行控制。
那么我该如何共享代码呢?
在许多支持多个环境的不同地方,您会看到将"服务"的整个返回值封装到从闭包传递给初始化函数的参数中。angular需要记住的一个问题是,服务可能不应该有其他依赖项来保持环境无关性(例如,如果这是一个简单的实用程序文件,就不太可能存在冲突)。
例如:
(function( myService){
if (typeof module !== 'undefined' && module.exports ) {
module.exports = myService;
} else if( angular ){
angular.module('yourModule', [])
.factory('serviceNameHere', function(){ return myService; });
} else {
window.myService = myService;
}
}(function(){
function foo(){/* Do something */}
function bar(){/* Do something else */}
return {
foo: foo,
bar: bar
}
}()))
如果需要,您仍然可以通过需要语法的节点或angular的依赖项注入来拥有依赖项,但服务在从一个项目移动到另一个项目时可能需要修改。
相关文章:
- Javascript,访问一个主要对象模块模式中的每个对象
- 是否有任何snippet或jQuery插件可以列出easylist.txt模式匹配的DOM中的所有元素
- 试图在引导模式内动态生成图表,得到offsetWidth错误
- 同位素库错误:未捕获错误无布局模式包装生产线8
- Facebook共享显示一个接一个的空白页面
- 在DOM中查找一个模式并替换它's的内容使用jquery
- 如何缩短MongoDB ObjectId并在Mongoose模式中使用它
- 通过javascript/html访问twitter共享iframe
- D3.js模式不适用于弧形或圆环图
- Webdriver.io pageObject模式-通过传递参数来定义元素选择器
- 模块模式和这个
- 在我的SPA应用程序中集成Facebook共享的问题
- 在索引.html和应用.js [node.js] 之间共享变量
- angularjs和node.js之间共享库的模式
- 用户共享页面后显示模式
- 脚本仅在编辑模式 - 共享点页面上执行
- 如何在 Crockford 的新构造函数模式中共享“构造函数”功能
- 如何关闭 SP.用户界面.模式对话框从按钮单击在共享点
- bootstrap模式中的Twitter共享按钮在firefox上不起作用
- 如何在没有循环依赖的模型之间正确共享Hapi-Joi验证模式