我是Angular的新手,因为我通常在构建相当大的应用程序,所以我开始创建一个懒惰加载的导航。事情运行得很好,我能够使用AngularUI路由器、UI路由器附加和ocLazyLoad延迟加载模块和状态。
以下是我的代码的简化版本:http://plnkr.co/edit/BXyvzy?p=info.
我唯一的问题是用UI路由器Extras的Futures States定义一个404页面。当我试图请求一个不存在或不在任何未来状态的状态时,应用程序会自动重定向到"/"。据我所知,在源代码中对此负责的代码是:
function otherwiseFunc($state) {
$log.debug("Unable to map " + $location.path());
$location.url("/");
}];
此函数被调用为另一个函数futureState_otherwise
的一部分,该函数被声明为$urlRouterProvider
的其他函数。
$urlRouterProvider.otherwise(futureState_otherwise);
如何正确处理UI路由器附加程序找不到的状态以及未来的状态?我应该为$urlRouterProvider.otherwise
重写一个新函数吗?或者有更好的方法吗?
提前感谢!
我在ui router extra Github页面上创建了一个pull请求,提出了一个解决方案,并将其合并到项目中。因此,这个问题将在新版本中得到解决。
https://github.com/christopherthielen/ui-router-extras/pull/77