每当用户点击浏览器的后退按钮/刷新按钮/关闭按钮时,如何更新数据库中的内容?

时间:2017-07-29 14:31:45

标签: angularjs mongodb

因此,当用户执行这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。$ on。之后,console.log行不会被执行。如果有人能告诉我如何解决这个问题,我真的很感激。在此之后,我正在考虑以下列方式解决我在DB中更改内容的问题:

1 - 我会在状态中添加一些属性,如stateNumber或其他。

2 - 然后使用该属性,if(toState.stateNumber == 1)

3 - 然后根据toState.stateNumber为1或2或其他什么,我将更新数据库

对如何解决这些问题表示赞赏。

1 个答案:

答案 0 :(得分:0)

以下是我在申请中的表现:

$rootScope.$on('$locationChangeSuccess', function() {
    $rootScope.actualLocation = $location.path();
});

$rootScope.$watch(function () {return $location.path()}, function (newLocation, oldLocation) {
    if($rootScope.actualLocation === newLocation) {
            //post to mongo
    }
});