即时角度服务-我还有什么其他方式可以重写它

Instantiable Angular Service - What Other Way Would I Rewrite This?

本文关键字:其他 什么 方式可 重写 服务      更新时间:2023-09-26

对于我正在处理的项目,我所写的其中一件事是为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

相关文章: