【发布时间】:2014-09-02 07:42:10
【问题描述】:
有人能看出为什么这不起作用吗? /series 没有加载图库,但 /series/:id/seasons 部分正在工作。 (这不是缺少 ng-view 问题,请参阅下面的工作代码!)
angular.module('xbmcremoteApp')
.config(function ($stateProvider) {
$stateProvider
.state('series', {
url: '/series',
templateUrl: 'app/series/series.html',
controller: 'SeriesCtrl'
}).state('series.gallery', {
url: '',
templateUrl: 'app/series/series-gallery/series-gallery.html',
controller: 'SeriesGalleryCtrl'
}).state('series.seasons', {
url: '/:id/seasons',
templateUrl: 'app/series/seasons/seasons.html',
controller: 'SeasonsCtrl'
});
});
如果我把它改成这个它可以工作,但这不是我想要的:
angular.module('xbmcremoteApp')
.config(function ($stateProvider) {
$stateProvider
.state('series', {
url: '',
templateUrl: 'app/series/series.html',
controller: 'SeriesCtrl'
}).state('series.gallery', {
url: '/series',
templateUrl: 'app/series/series-gallery/series-gallery.html',
controller: 'SeriesGalleryCtrl'
}).state('series.seasons', {
url: '/series/:id/seasons',
templateUrl: 'app/series/seasons/seasons.html',
controller: 'SeasonsCtrl'
});
});
编辑和解决方案:
我的帖子缺少一些信息。为了清楚起见:
我想在调用 /seriesurl 时显示一个画廊。我想用季节网址显示季节。没有更多的意见!
找到了一个非常简单的解决方案。将 abstract 属性设置为 true 会强制 stateprovider 使用子视图。
....
.state('series', {
abstract:true, //adding this line makes the states work as expected
url: '/series',
templateUrl: 'app/series/series.html',
controller: 'SeriesCtrl'
})
....
【问题讨论】:
标签: angularjs nested state angular-ui-router