2016-08-15 39 views
2

我正在創建一個基本的Ember應用程序,並且我希望將正斜槓/附加到每個URL的末尾。這樣我就可以使用錨鏈接而不需要整個頁面重新加載一次。Ember.js:要編輯哪個文件以向每個路徑附加正斜槓

例如,如果我去localhost:4200/posts,並有一個錨鏈接/posts/#top,第一時間的頁面將重新加載,因爲原始URL是/posts而不是/posts/

現在我已經知道如何如何使用Javascript追加一個正斜槓到每個URL的末尾,但我的問題是如何與Ember做到這一點。是否有文件可以在我的應用程序中爲每條路線定義此規則?或者我是否必須爲每條我想添加正斜槓的路線定義這些規則?

+0

這也許是有用的https://guides.emberjs。 COM/V2.7.0 /配置-餘燼/指定的URL型/#toc_hash –

回答

2

創建URL是Location API的職責。默認情況下,您可以通過Router中的location屬性指定要使用的位置API的實現。您可以創建自己的位置提供商並進行註冊,然後在您的Router中指定該提供商。這不是我曾經嘗試過的,但是你可以擴展現有的一個實現(例如hashhistory)。

看到這裏實現Location API的細節:https://github.com/emberjs/ember.js/blob/v2.7.0/packages/ember-routing/lib/location/api.js

然後,在一些初始化程序,你應該能夠做到:

import CustomLocation from 'my/custom/location/api/implementation.js'; 
import Router from 'router'; 

Router.reopen({ 
    location: 'customLocation', 
    customLocation: CustomLocation 
}); 
相關問題