2013-07-29 124 views
3

我正在編寫的應用程序使用EmberJS路由(使用#)和普通的傳統HTML錨點。這樣做是有原因的,使用正常的錨點並不是我現在可以避免的。EmberJS RC6路由器全部捕獲

我曾經在我的路由器地圖中使用以下行。

this.route('catchAll',{path:「*:」});上述

用於工作,直到我更新到RC6和我開始得到了「未捕獲的錯誤:沒有名爲路線......」

是否有新的方式做抓所有的當前版本餘燼?

謝謝先進。

+0

確認@Daniel發佈的'path:*:'解決方案也適用於RC.6。也許可能涉及其他一些相關問題。 –

回答

1

這似乎是,如果你的哈希不是以'/'開始,他們將不再工作。我會說這是rc6路由器中的一個錯誤。

+0

這似乎是這種情況,所有的錨點都需要以斜線開頭。所以,而不是說index.php#goToAnchor,我不得不說index.php#/ goToAnchor – Arvy

1

在我看來,它仍然在工作。你介意給我一個jsfiddle它不工作?

App.Router.map(function() { 
    this.route('index', {path: '/'}); 
    this.route('catchAll', { path: '*:' }); 
    this.route('place', {path: '/place'}); 
}); 

jsfiddle of it working on RC6

是它可能不能在其他地方?它是否在編程轉換上失敗而不是href更改?如果是這樣,它可能與推入的新路由器有關,我們可能應該提交一個錯誤。

+0

看來我們現在必須在錨名前使用斜線。我修改了小提琴並刪除了斜線,我得到了同樣的錯誤。 http://jsfiddle.net/codingepiphany/9shqV/6/我敢肯定,這曾經在RC6之前的過去工作,因此我能夠做到所有。 – Arvy

+0

謝謝。 '{path:'*:'}'中的冒號非常重要! – Pascal