用户按下后退按钮时的AngularJS

AngularJS when user presses back button

本文关键字:AngularJS 按钮 用户      更新时间:2023-09-26

我到处找了一遍,似乎找不到一个简单明了的答案。基本上,我在搜索/筛选字段方面遇到了问题,用户输入文本,它会过滤该页面。过滤器适用于每一页。

现在,当他们按下任何导航项时,都会清除搜索文本/型号值。为此,我不得不手动启动onclick事件并创建一个函数。

我的问题是,当用户按下浏览器的"后退按钮"时,输入文本不会被清除。

有没有像这样的简单事件

if(usersPressedBackButton){
//Do stuff
}

将此代码添加到控制器中:

$scope.$on('$locationChangeStart', function(event, next, current) {
    if ($scope.yourinputfield.$dirty) {
        $scope.yourinputfield = "";
        $scope.yourinputfield.$setPristine();
    }
});

没有人能对此给出明确的答案,所以我创建了自己的答案。

我创建了一个布尔值,当用户从另一个页面搜索时检测到它。

父控制器:

$scope.searchFilterText = '';
$scope.fromSearchClick = false;
$scope.$on('$locationChangeStart', function() 
    {
        if(!$scope.fromSearchClick){
            $scope.clearFilterSearchText();
        }
        $scope.fromSearchClick = false;
    });

子控制器-或者您不希望/确实希望清除搜索的页面。

//In any function
$scope.$parent.fromSearchClick = true;