0
有人可以看到爲什麼這不起作用嗎? /series
未加載圖庫,但/series/:id/seasons
部分正在工作。 (它不是一個缺少NG-觀看問題請參見下面工作的代碼!)角度嵌套狀態不按預期方式工作
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'
});
});
編輯和soltuion:
我的文章缺少一些信息。爲了說清楚:
我想在調用/series
url時顯示一個圖庫。而且我想用季節網址顯示季節。沒有更多的意見!
找到了一個非常簡單的解決方案。將抽象屬性設置爲true會強制stateprovider使用子視圖。
....
.state('series', {
abstract:true, //adding this line makes the states work as expected
url: '/series',
templateUrl: 'app/series/series.html',
controller: 'SeriesCtrl'
})
....
但爲什麼/ series /:id/season在兩個定義中都起作用?即使根狀態具有/系列url!你用'^'的建議與我的第二個解決方案有什麼不同? – 2014-09-02 14:59:13
我的建議(只是建議)只是爲了告訴你,該系列可以有URL''/''和series.gallery會有'/ series'',而在你的第二個映射'系列'什麼也沒有:'' 「'。 'series.seasons'實際上是'系列'**的孩子,所以應用相同的原則。如果父母是''並且季節是'/ series /:id/season',那麼它的組合是'''+'/ series /:id/season''。在你的第一個映射中,concat具有相同的結果''/ series /'+':id/season''。這真的是非常簡單的原則......沒有什麼可比的。它有幫助嗎? – 2014-09-02 15:08:48
好吧,我明白你的意思,但在我的情況下,這不會奏效,我想。不過,我可能不得不考慮我的「孩子」概念。爲什麼我這樣做了這樣的狀態是因爲父級提供了一個適用於以'/ series'開頭的每個url的模板,並且只包含該模板中的特定視圖。我不知道如何以其他方式解決這個問題。我更新了我的帖子順便說一句。因爲我目前找到了適合我的解決方案。謝謝:) – 2014-09-02 15:17:23