【问题标题】:passing scope parameters to resolve function angularjs传递作用域参数来解析函数 angularjs
【发布时间】:2013-10-30 02:10:47
【问题描述】:

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

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

【问题讨论】:

    标签: angularjs parameters routes resolve


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2016-12-12
      • 1970-01-01
      • 2017-04-19
      • 1970-01-01
      • 1970-01-01
      • 2017-08-13
      • 1970-01-01
      • 2015-11-28
      • 2014-10-18
      相关资源
      最近更新 更多