2017-06-06 24 views
2

我有一個數組數組中包含另一個數據數組與數組的數據(TypeOfServiceAssigned:Array(2))在兩個內部數組中通用,我想應用ng-repeat這樣的方式,類似的鍵值將組合在一起,並不同一個分組。ng-repeat在數組中包含具有類似key-value的內部數組的數據將組合在一起?

更好的解釋見下文:

Array = [ 
    { 
    Quotation:1200, 
    TypeOfServiceAssigned:["Primary", "Partial Services"], 
    VendorEmail:"[email protected]" 
    },{ 
    Quotation:1350, 
    TypeOfServiceAssigned:["Partial Services"], 
    VendorEmail:"[email protected]" 
    } 
]; 

我想通過陣列應用NG重複,這樣它會告訴我兩個組根據TypeOfServiceAssigned值,一個小學和第二偏Sevicers。對於部分服務商,它會顯示兩個列表。

+0

我會在你的控制器或服務中準備數組,無論適用於你的情況。然後再重複一遍。但是,你有什麼嘗試? – giorgio

+0

友善地分享你嘗試過的東西。 –

回答

2

最有效的方法是本抑末的功能,以精確返回你想要的.. example here,然後將其綁定到你的嵌套NG-重複,你通常會做:)

但是通常我們應該做這在服務器但是無論如何...

function doGroupBy() { 
    var result = {}; 
    for (var i = 0; i < input.length; ++i) { 
     var current = input[i].TypeOfServiceAssigned; 
     for (var j = 0; j < current.length; ++j) 
      if (result[current[j]]) 
       result[current[j]].push(input[i]); // result[current[j]] = [...result[current[j]], input[i]]; 
      else 
       result[current[j]] = [input[i]]; 
    } 

    return result; 
} 

var input = [{ Quotation: 1200, TypeOfServiceAssigned: ["Primary", "Partial Services"], VendorEmail: "[email protected]" }, 
      { Quotation: 1350, TypeOfServiceAssigned: ["Partial Services"], VendorEmail: "[email protected]" }]; 

var testResult = doGroupBy(input); 

for (var key in testResult) { 
    console.log('-----------'); 
    console.log(key); 
    console.log(testResult[key]); 
} 
+0

傳播運算符在angularjs中拋出錯誤(在吞吐控制檯中) – KiranPurbey

+1

哪些錯誤?,請使用數組push。 – codeSetter