用户按下后退按钮时的AngularJS

时间:2014-10-29 01:05:35

标签: javascript html angularjs

我全面搜索,似乎我无法得到一个明确的简单答案。 基本上我遇到搜索/过滤字段的问题,用户输入文本并过滤该页面。过滤器适用于每一页。

现在,当他们按下任何导航项时,它会清除搜索文本/模型值。我必须为此手动触发onclick事件并创建一个函数。

我的问题是,当用户按下浏览器的“后退按钮”时,输入文字没有被清除。

是否有任何简单的事件:

if(usersPressedBackButton){
//Do stuff
}

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

没有人可以就此提供明确的答案,所以我创建了自己的答案。

我创建了一个布尔值,用于检测用户从另一个页面搜索的内容。

家长控制器:

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

    });

儿童控制器 - 或者您不希望清除搜索的页面。

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