我有一个路由提供商,其配置如下。
ocsApp.config(function($routeProvider){
$routeProvider
.when('/userStat/:pageNo' ,
{
templateUrl:'userStats',
controller:'userStatController',
resolve: {
loadData: searchController.loadData
}
});
});
loadData函数,即resolve方法调用一个服务,该服务需要大约6-7个参数,我不想在路由URL中出现,所有这些参数都在searchController范围内可用。有没有办法可以在loadData函数中传递这些参数。
代码是这样的。
searchController.loadData=function($q,sessionFactory,$route){
var deferred = $q.defer();
sessionFactory.getSessions(siteId,startDate,endDate,pageNo,resultPerPage)
success(function(data,status)
{
deferred.resolve(data);
});
return deferred.promise;
};
有没有办法在loadData函数中传递这些参数。
答案 0 :(得分:0)
“searchController”范围并不存在于您正在考虑的上下文中。
你应该做的是将searchController范围内当前的参数抽象为服务,将参数放在那里,然后将其注入loaddata函数。如果绑定很重要,您将不得不基于$ watch手动更新该服务的参数,或者您可以将服务中的参数对象放入searchController范围,并且常规绑定将起作用。