AngularJS当用户按下后退按钮
问题描述:
我已经全面搜索,似乎我无法得到明确的简单答案。 基本上我遇到了搜索/过滤器字段的问题,用户输入文本并过滤该页面。该过滤器适用于每个页面。AngularJS当用户按下后退按钮
现在,当他们按下任何导航项时,它将清除搜索文本/模型值。我不得不为此手动触发onclick事件并创建一个函数。
我的问题是,当用户按下浏览器的“后退按钮”输入文本没有得到清除。
是否有像任何简单事件:
if(usersPressedBackButton){
//Do stuff
}
答
没有人能提供这方面的一个明确的答案,所以我创造了我自己。
我有一个创建一个布尔值,当用户从另一个页面搜索时检测到。
父控制器:
$scope.searchFilterText = '';
$scope.fromSearchClick = false;
$scope.$on('$locationChangeStart', function()
{
if(!$scope.fromSearchClick){
$scope.clearFilterSearchText();
}
$scope.fromSearchClick = false;
});
儿童控制器 - 或页面你不/不希望搜索被清除。
//In any function
$scope.$parent.fromSearchClick = true;
答
这段代码添加到您的控制器:
$scope.$on('$locationChangeStart', function(event, next, current) {
if ($scope.yourinputfield.$dirty) {
$scope.yourinputfield = "";
$scope.yourinputfield.$setPristine();
}
});
不起作用。搜索模式/字段仍包含文本。 – 2014-10-29 01:32:30