AngularJS搜索更改事件

Chr*_*art 4 search angularjs

我需要一个类似于$routeChangeSuccess$ location.search()变量的事件.我在调用$ location.search('newview'),需要一种方法来知道它何时发生变化.

谢谢!

Max*_*ach 15

你应该使用$scope.$watch:

$scope.$watch(function(){ return $location.search() }, function(){
  // reaction
});
Run Code Online (Sandbox Code Playgroud)

$watch在Angular 文档中查看更多信息.

如果您只是想要添加'newview',那么对于查询字符串,上述代码将起作用.

即从... http://server/page到http://server/page?newvalue

但是,如果您要查找"newview"中的更改,则上述代码将无效.

即从... http://server/page?newvalue=a到http://server/page?newvalue=b

您需要使用'objectEquality'参数来调用$ watch.这导致$ watch使用值相等,而不是对象引用相等.

$scope.$watch(function(){ return $location.search() }, function(){
  // reaction
}, true);
Run Code Online (Sandbox Code Playgroud)

注意添加第3个参数(true).