如果使用$location.search()
,有没有办法停止解析控制器数据。
以下是我的代码
App.config(function($routeProvider, $locationProvider) {
$routerProvider.when('/overview' {
title:"Overview",
controller:"OverViewCtrl",
templateUrl:"pages/overview.html",
resolve:{
mainData:function(Service){
return Service.getOverviewData();
}
});
});
在我的控制器中,我使用相同的
App.controller("OverViewCtrl", function($scope, $location, mainData, Service){
$scope.data = mainData.data;
$scope.otherData = null;
Service.getOtherData($location.search(), function(data){
$scope.otherData = data;
});
$scope.search = function(param){
$location.search(param);
};
});
每次调用search
方法mainData
数据都是从服务加载的,有没有办法在搜索时调用getOtherData
服务。
答案 0 :(得分:0)
$routeProvider
配置具有reloadOnSearch
属性。从文档
[reloadOnSearch = true] - {boolean =} - 仅在重新加载路线时 $ location.search()或$ location.hash()更改。
将其设为false
。
在您的控制器中,然后订阅$route
事件$routeUpdate
$ scope。$ on(' $ routeUpdate',function(event,args){ //在这里你可以获得其他数据。 });
检查第二个参数以查看args
对象哈希中传递的内容。我相信它包含当前路线和其他一些数据。