1
因此,當用戶執行這3個事件中的任何一個時,我想更新MongoDB中的某些內容。我在這裏搜索了堆棧溢出,並獲得了一些告訴我使用$ stateChangeStart的信息。所以,我寫了下面的線我的app.config結束後:如何在用戶點擊瀏覽器的後退按鈕/刷新按鈕/關閉按鈕時更新數據庫中的內容?
.run(['$state', '$cookies', '$rootScope', function($state, $cookies, $rootScope) {
$rootScope.$on('$stateChangeStart', function(e, toState, toParams, fromState, fromParams) {
console.log('e', e);
console.log('toState', toState);
console.log('toParams', toParams);
console.log('fromState', fromState);
console.log('fromParams', fromParams);
});
}]);
的問題是,瀏覽器會只到$ rootScope $上。之後,console.log行不會被執行。如果有人能告訴我如何解決這個問題,我會非常感激。在此之後,我想通過以下方式來解決我在數據庫中更改某些內容的問題:
1 - 我將添加一些屬性到stateNumber等狀態。
2 - 然後使用該財產,將有如果(toState.stateNumber == 1)
3 - 然後根據toState.stateNumber爲1或2或什麼的,我會更新數據庫
有關如何解決這些問題的任何想法。
你試過$ locationChangeSuccess而不是$ stateChangeStart? –
@pedrumgolriz是的,先生!我正在嘗試它。它不會產生任何錯誤。但是當我做console.log($ location.path())時,沒有記錄,而console.log($ rootScope.actualLocation)日誌未定義。爲什麼? – psvs
我相信它是因爲它在.run中,試着直接粘在控制器上。 –