2014-10-29 187 views
0

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

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

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

是否有像任何简单事件:

if(usersPressedBackButton){ 
//Do stuff 
} 

回答

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; 
0

这段代码添加到您的控制器:

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

不起作用。搜索模式/字段仍包含文本。 – 2014-10-29 01:32:30

相关问题