1
有沒有人跑過這種行爲?關於它並沒有太多提及,其他職位本質上是不同的。這似乎與關於瀏覽器行爲的文檔不一致。
與同步,當用戶
- 更改地址欄中的瀏覽器的URL。
- 點擊後退或前進按鈕(或點擊歷史鏈接)。
- 點擊鏈接。
https://docs.angularjs.org/api/ng/service/ $ location#!
會發生什麼:
- Load page - 哈希更新(http://localhost:9000/#/)
- 點擊 '開始' - 更新$位置$$路徑通過功能更新哈希和加載新視圖(http://localhost:9000/#/guide)
- 整蠱!用戶點擊瀏覽器中的後退按鈕,哈希更新回到http://localhost:9000/#/,但調試告訴我$位置。$$路徑仍認爲我們位於$位置。$$ path =/guide - 基於位置路徑的邏輯不起作用。
這是一個觀察者對位置,以幫助調試:
// listen for the event in the relevant $scope
$rootScope.$on('locationChange', function (event, data) {
console.log(data);
});
//Call locationChange watch at anytime the page is loaded
$scope.$emit('locationChange', $location.$$path);
這裏的路由:
$routeProvider
.when('/guide', {
templateUrl: 'views/guide.html',
controller: 'GuideController',
controllerAs: 'guide'
})
.when('/', {
templateUrl: 'views/about.html',
controller: 'AboutCtrl',
controllerAs: 'about'
})
.otherwise({
redirectTo: '/'
});
你是什麼意思當你說「隨時加載頁面」?該頁面只加載一次,然後用路由器根據路徑創建和銷燬控制器。你能提供你發出事件的代碼嗎? –
正確,頁面只加載一次,無論您是在根區還是小孩路線/視圖。 $ location。$$ path在所有應用程序更改觸發的函數中被省略,但在您點擊時單擊瀏覽器並不會更新。 Angular何時以及如何跟蹤後退/前進按鈕的點擊? – vars