即时角度服务-我还有什么其他方式可以重写它
Instantiable Angular Service - What Other Way Would I Rewrite This?
对于我正在处理的项目,我所写的其中一件事是为Angular UI Bootstrap Calendar控件提供一个可实例化的服务。
你可以在这里看到它的作用。
我的代码问题更多的是一个架构和最佳实践问题。具体来说,我想我已经写了一个Angular反模式。
像calendarSvc
这样的服务是单一的,但我通过让工厂返回一个构造函数来明确地规避这一点。
话虽如此,1-n日历存在于单个页面上是一种具体的业务需求。这段代码是对管理单个日历所需代码的有效重构,因此它肯定有助于代码变得更加DRY。
问题:对于这个可实例化的服务,有什么有效的替代方案可以让我根据需要指定可重用日历对象的实例,但不会绕过Angular管理代码的方式?
您所做的不是反模式,而是最佳实践!例如,请参阅此样式指南页面:http://github.com/mgechev/angularjs-style-guide#services.
你没有绕过Angular方式。工厂的概念是返回构造函数的可能性。创建服务的另一种选择是模块的服务方法,它会自动用new
关键字实例化您的服务。
另请参阅另一个StackOverflow答案作为参考:https://stackoverflow.com/a/20110304/669561
相关文章:
- 是什么让一个“;Uncaught RangeError:超过了最大调用堆栈大小“;错误(Chrome,在其他浏览器中显示
- 什么's导致了512字节的限制-openkeyval或其他什么
- 杜兰达尔默认路线有效,其他什么都没有
- javascript或缓存错误?或者其他什么
- 在IE8和其他带有javascript的浏览器中获取正文类的标准解决方案是什么
- 如果React.js是V,那么在MVC中,其他字母是什么
- document.write和document.innerHTML以及其他javascript问题之间有什么区别
- 如何上传文件不使用多部分编码?(可能使用八位字节或其他什么)
- @internal react 代码中的 JavaScript 文档标签,是 jsdoc、闭包还是其他什么
- 如何匹配其他一切,但不管它是什么's与regex匹配
- Javascript 我应该使用什么其他技巧来代替导出符号
- javascript:将浮点数四舍五入到最接近的 .25(或其他什么..)
- 在我的测试脚本中,我运行了 if 语句,但我从未运行过其他语句?我做错了什么
- 什么是原型?构造函数或其他对象
- 在默认情况下将可枚举设置为 false 的 JS 中创建对象属性的其他方法是什么
- 如何检测客户端´s的计算机语言/或其他什么,以便自动更改网站中的语言
- javascript+jquery检查元素是否存在,然后设置其值,或者其他什么
- 在浏览器中实现类似Powerpoint的应用程序-Javascript、Silverlight或其他什么
- <noscript>或者其他什么
- 变量范围或其他什么?刚开始的JS