2013-08-30 136 views
0

我試圖設置一個應用程序,但我收到了一些奇怪的行爲。我有兩條路線:「welcome」,它映射到「/」;和「功能」,映射到「/功能」。導航到「/」時,歡迎模板正確呈現。但是,當我導航到「/ features」時,它仍然呈現歡迎模板。Ember只渲染根模板

這個jsbin實際上工作正常:http://jsbin.com/OSoFeYe/1,但下面的代碼,這是從我的應用程序,沒有。

App.Router.map(function() { 
this.route("welcome", {path: "/"}); 
this.resource("features", {path: "/features"}, function() { 
    this.route("new"); 
    }); 
}); 

App.FeaturesIndexRoute = Ember.Route.extend({ 

}); 



<body> 
    <div class="container"> 

<script type="text/x-handlebars"> 
<h1>rendered application template</h1> 
{{outlet}} 
</script> 

<script type="text/x-handlebars" data-template-name="features"> 
<h2>Render features</h2> 

<h6>Done features template</h6> 
</script> 

<script type="text/x-handlebars" data-template-name="welcome"> 
<h2>Render welcome</h2> 
</script> 
</div> 
</body> 

任何有關這個問題的見解,將不勝感激。

回答

2

將以下內容添加到您的js文件中,您將不再需要該散列。

App.Router.reopen({ 
    location: 'history' 
}); 
0

從你的jsbin獲取代碼並將其粘貼到你的應用中,你可能會有一個錯誤的或者你不應該的代碼塊。我編輯了你的「歡迎」模板,在jsbin中有以下鏈接,它對我來說非常合適。

<script type="text/x-handlebars" data-template-name="welcome"> 
    <h2>rendering welcome template</h2> 
    {{#linkTo "features"}}features{{/linkTo}} 
</script> 

在歡迎鏈接它有一個鏈接,說「功能」正下方的文字「歡迎渲染模板」。當你點擊鏈接時,它會顯示「呈現功能模板」。

+0

所以,功能鏈接到「http:// localhost:3000/features#/ features」鏈接,並正確呈現功能模板。但是,如果我轉到「http:// localhost:3000/features」,它仍會呈現歡迎模板。 –

0

好吧,我想我在這裏看到了這個問題,它是基於我對誤差路線的誤解。我需要在我的網址中加入散列。所以我的功能網址是/#/功能,而不是/功能。