在 Angular 1.2 中,ngRoute
它是一个单独的模块,因此您可以使用其他社区路由器ui.router
代替。
我正在编写一个开源模块,旨在为多个不同的路由器实现工作。那么如何检查哪个路由器已加载或存在?
我在模块中的工厂内执行以下操作,但它并没有按照我期望的方式工作:
if (angular.module("ngRoute"))
// Do ngRoute-specific stuff.
else if (angular.module("ui.router"))
// Do ui.router-specific stuff.
对于未加载的任何模块,它都会引发错误。例如,如果应用程序正在使用ui.router
,则ngRoute
检查时会引发以下错误:
未捕获的错误:[$injector:nomod] 模块“ngRoute”不可用!您要么拼错了模块名称,要么忘记加载它。如果注册模块,请确保将依赖项指定为第二个参数。