如何将多个状态指向同一个文件?

时间:2016-05-25 20:20:06

标签: angularjs angular-ui-router

我有一个基本的404页面,如果有人输入错误的网址,我想显示该页面。我们的应用程序分为多个模块,我将这个模块称为Module1和Module2。

我在Module1和Module2中定义404路由,如下所示:

state("404", {
    url: "/404",
    templateUrl: "page-not-found/page-not-found.html"
})

$urlRouterProvider.otherwise("/404");

在Module1中,所有路径都如下所示:/home, /something, /somethingelse

在Module2中,所有路径都如下所示:/module2/home, /module2/something, /module2/somethingelse

所有这些路线都有不同的templateUrl路径。

当我输入/badroute时,一切正常。我得到404页面并且有很多欢乐(yaaaaaaay)。但是,当我键入/module2/badroute时,我没有进入页面而是获得一般的Angular错误。即使我更改了状态的名称和/或url,也会发生同样的问题,因为它们指向同一个文件。

当我为Module2设置404 templateUrl不同的文件路径时,一切都按预期工作; /asdf/module2/asdf都将我带到了各自的404页面。由于我不想创建多个404错误页面,如何让不同模块中的路由指向同一个html文件而不会让我脸红?模块之间没有父子关系;它们都是应用程序的不同部分。

0 个答案:

没有答案