2015-07-20 93 views
0

我有一個角度資源工廠,我想知道是否有可能將路徑/查詢參數傳遞給工廠函數。請查看代碼中的評論以獲得更好的線索。是否有可能將參數傳遞給角廠

.factory("$Sentiments", function($resource, d3Service, ??URL-Parameters??) { 
     var d3 = d3Service; 
     var result = {}; 
     var treemap = d3.layout.treemap() 
       .size([100, 100]) 
       .value(function (d) { 
        return d.activity + .35; 
       }) 
       .sort(function (a, b) { 

        // < ------------- HERE ---------- > 
        // I would like to sort based on a query parameter like so: 
        // if url is like http://localhost/#!/lala?sort=asc 

        return a.activity - b.activity != 0 
         ? a.activity - b.activity 
         : a.symbol < b.symbol ? -0.01 : 0.01; 
       }); 
+3

爲什麼不在服務中創建一個帶參數的函數? – tymeJV

回答

0

您可以通過注入$位置檢測出廠URL參數使用它的方法來解析這樣的URL:

var sort = $location.search().sort; 

然後你可以使用那個變量來做你的邏輯。

0

爲工廠是單一實例,你最好只是回到它接受參數的函數,

,如:

.factory("$Sentiments", function($resource, d3Service) { 
    var d3 = d3Service; 

    return function(??URL-Parameters??){ 
     var treemap = d3.layout.treemap() 
      .size([100, 100]) 
      .value(function (d) { 
       return d.activity + .35; 
      }) 
      .sort(function (a, b) { 

       // < ------------- HERE ---------- > 
       // I would like to sort based on a query parameter like so: 
       // if url is like http://localhost/#!/lala?sort=asc 

       return a.activity - b.activity != 0 
        ? a.activity - b.activity 
        : a.symbol < b.symbol ? -0.01 : 0.01; 
      }); 
} 
相關問題