使用ui-router在URL路由中创建必需参数

时间:2016-03-23 09:30:01

标签: javascript angularjs angular-ui-router

我有一个非常简单的路由角度(使用ui-router)设置如下:

$stateProvider

    .state("master", {
        abstract: true,
        url: "/{tenantName}"            
    })

    .state("master.home", {
        url: "",
    })

    .state("master.login", {
        url: "/login"
    })

现在我希望如果url中没有参数,则它与任何状态都不匹配并进入默认状态。但我有两个问题:

  1. master.home仅将网址与域匹配,例如domain.com我希望参数是强制性的(domain.com/hello)。我发现这样做的唯一方法是在那里放一个非空的正则表达式,但我希望有更好的方法。

  2. 我不知道如何制作正确的默认状态。似乎唯一的选择是使用""创建一个默认状态。 url(修复1之后)并添加.ot​​herwise以重定向到该状态的url。

1 个答案:

答案 0 :(得分:0)

你可以有其他状态

app.config(function($urlRouterProvider){
    // if the path doesn't match any of the urls you configured
    // otherwise will take care of routing the user to the specified url
    $urlRouterProvider.otherwise('/index');

    // Example of using function rule as param
    $urlRouterProvider.otherwise(function($injector, $location){
        ... some advanced code...
    });
})

https://github.com/angular-ui/ui-router/wiki/URL-Routing