AngularJS ui.router抽象路由和尾部斜杠

时间:2015-02-12 18:32:38

标签: angularjs angular-ui-router states

我有三种路线状态 - 抽象状态,显示列表的状态和专门显示某个特定对象细节的状态。

我的状态配置如下:

.state('movies', {
        url: "/movies",
        template: '<ui-view ng-show="isLoaded" />',
        abstract: true,
        ncyBreadcrumb: {
            skip: true
        }
    })
    .state('movies.index', {
        url: "?genres&tags&year&season&page&perpage",
        templateUrl: "views/movies.html",
        controller: 'MoviesViewController',
        ncyBreadcrumb: {
            label: 'Movies'
        }
    })
    .state('movies.show', {
        url: "/:id/:slug",
        controller: 'MoviesItemController',
        templateUrl: "views/movies/details.html",

        ncyBreadcrumb: {
            parent: 'movies.index',
            label: '{{item.title_main}}'
        }
    })

我想添加movies.index的可能性也以斜杠开头,因此URL可以是/ movies或/ movies /。但是根据我的设计,我不知道该怎么做。

我也不确定我是否正确理解抽象状态背后的概念。我可以使用它,或者让movies.index成为父状态,在这种情况下,如何用子模板替换它的内容?此外,我注意到,由于父控制器也被调用,因此不必要的GET请求被发送到我的API,这会减慢速度(特别是因为它是完全无用的信息)。任何人都可以帮我一把吗?

1 个答案:

答案 0 :(得分:0)

我了解$urlMatcherFactory.strictMode(false)

支持此用例

看看她 http://angular-ui.github.io/ui-router/site/#/api/ui.router.util。$ urlMatcherFactory#methods_strictmode