2014-10-29 173 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

相關問題