Search AngularJS搜索更改事件
对于$location.search()变量,我需要一个类似于Search AngularJS搜索更改事件,search,angularjs,Search,Angularjs,对于$location.search()变量,我需要一个类似于$routeChangeSuccess的事件。我正在调用$location.search('newview'),需要一种方法来知道它何时更改 谢谢 您应该使用$scope.$watch: $scope.$watch(函数(){return$location.search()},函数(){ //反应 }); 请参阅《角度》中有关$watch的更多信息 如果您只是想在查询字符串中添加“newview”,那么上面的代码就可以了 i、 e.
$routeChangeSuccess
的事件。我正在调用$location.search('newview'),需要一种方法来知道它何时更改
谢谢 您应该使用
$scope.$watch
:
$scope.$watch(函数(){return$location.search()},函数(){
//反应
});
请参阅《角度》中有关$watch
的更多信息
如果您只是想在查询字符串中添加“newview”,那么上面的代码就可以了
i、 e.来自http://server/page
至http://server/page?newvalue
但是,如果您正在“newview”中查找更改,则上述代码将不起作用
i、 e来自http://server/page?newvalue=a
至http://server/page?newvalue=b
您需要使用'objectEquality'参数调用$watch。这导致$watch使用值相等,而不是对象引用相等
$scope.$watch(函数(){return$location.search()},函数(){
//反应
},对);
注意添加了第三个参数(true)。您可以在控制器中侦听$routeUpdate事件:
$scope.$on('$routeUpdate', function(){
$scope.sort = $location.search().sort;
$scope.order = $location.search().order;
$scope.offset = $location.search().offset;
});
啊,你实际上可以在手表里使用一个功能。谢谢。请确保在调用$watch时使用“objectEquality”参数(第三个参数)。否则,它将检查对象引用的相等性,而不是按值。如果将“newview”添加到querystring中,$watch将起作用,但是如果更改了“newview”的值,$watch将不起作用。您不能这样做:$scope.watch($location.search,function(){…})不,您不能。$watch函数中的第一个参数是以$scope作为第一个参数和$location.search方法调用的,在这种情况下,参数不可能重复