3

我有一个具有以下配置的路由提供程序。

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 函数中传递这些参数。

4

1 回答 1

0

“searchController” 范围实际上并不存在于您所考虑的上下文中。

您应该做的是将当前在 searchController 范围内的参数抽象到一个服务中,将您的参数放在那里,然后将其注入您的 loaddata 函数。如果绑定很重要,您将不得不根据 $watch 手动更新该服务的参数,或者您可以将服务中的参数对象放入 searchController 范围,并且常规绑定将起作用。

于 2013-10-21T14:26:44.773 回答