2014-02-25 133 views
1

我在下面創建的路由,story/new未顯示它的story-new.html模板。它總是去story-view.html,因爲我得到了動態:storyID所以new認爲是一個動態名稱。如何在Angularjs中結合動態路由和靜態路由

如何合併它們使/new將路由到story-new.html或者我的路由結構出錯了?

$routeProvider.when('/story/new', { 
templateUrl: 'js/modules/story-new/story-new.html' 
}); 

$routeProvider.when('/story/:storyID', { 
templateUrl: 'js/modules/story-view/story-view.html' 
}); 

回答

2

我不確定這是否奏效,但切換它們可以解決您的問題。

+0

OMG,魔術!這工作。 我給你投票最短的答案在Stackoverflow。 – vzhen

+0

是的它的工作原理,但我不完全確定爲什麼。想知道當Angular通過所有路線時我的實際邏輯是什麼(我猜它試圖匹配你最後定義的路線)。此外,爲什麼@ madhured的答案工作? – NicolasMoise

+0

由於madhured在routeProvider的末尾定義了'otherwise'? – vzhen

1

檢查以下plunker

http://plnkr.co/edit/pgQu8nwGYrOQusZnThUy?p=preview

讓我知道,如果有什麼

+0

如果沒有定義「否則」,它可以工作但不工作 – vzhen

+0

您應該總是使用'otherwise',因爲可能有人會手動更改URL,或者模板文件名可能會更改或被刪除。否則'確保您的用戶不會被擱淺。 – squidbe