2014-02-25 132 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