2013-10-21 26 views
3

我有一個具有以下配置的路由提供者。傳遞範圍參數來解析函數angularjs

ocsApp.config(function($routeProvider){ 
     $routeProvider 
      .when('/userStat/:pageNo' , 
      { 
       templateUrl:'userStats', 
       controller:'userStatController', 
       resolve: { 
        loadData: searchController.loadData 
       } 

      });    
    }); 

的loadData函數,即解決方法調用它需要大約6-7個參數,我不希望出現在路線網址,所有這些都是在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

「searchController」範圍並不存在於您正在考慮的上下文中。

你應該做的是將當前在searchController範圍中的參數抽象到一個服務中,把你的參數放到那裏,然後將它注入到你的loaddata函數中。如果綁定很重要,那麼您將不得不手動更新基於$ watch的服務參數,或者可以將服務中的參數對象放入searchController範圍,並且常規綁定將起作用。