AngularJS - 忽略父路线

时间:2015-03-03 16:31:12

标签: angularjs angular-ui-router

父路线不包含任何视图。我将子路由放在父级中以共享其名称,以便该网址变为.../sites/site1.../sites/site2

$stateProvider
    .state('sites', {
        url: '/sites',
        abstract: true
    })
    .state('sites.site1', {
        url: '/site1',
        templateUrl: 'templates/site1.html'
    })
    .state('sites.site2', {
        url: '/site2',
        templateUrl: 'templates/site2.html'
    })
    // ...
    // Other routes

但是当我去的时候,这似乎不起作用:

<a ui-sref="sites.site1">Go to first site</a>
<a ui-sref="sites.site2">Go to second site</a>

没有出现任何东西。 (其他正常路线工作正常)

1 个答案:

答案 0 :(得分:1)

父母必须有一个儿童目标:

.state('sites', {
    url: '/sites',
    abstract: true,
    // THIS line is essential, 
    // 1) it will inject the parent template into root 
    //    (index.html) ui-view=""
    // 2) and will also create a target for a child view
    template: '<div ui-view=""></div>',
})

原因是:子状态正在使用隐式视图命名,期望父级将具有一些未命名的目标 ui-view=""