2017-10-09 76 views
0

我見過幾個問題有關添加條件到NG-重複的過濾器,並沒有這些選項對我工作過在NG-重複條件篩選

我有以下的自定義過濾器

app.filter('customFilter', function() { 
    return function (collection, type, seq) { 
     return !collection ? [] : collection.filter(function (item) { 
      return (type === 'DL' && item.del_seq === seq) || (type === 'PU' && item.pu_seq === seq) 
     }); 
    } 
}); 

而且,這是在我的指導

<tr ng-repear-start="parent in parentCollection"> 
    <td> Do stuff with parent collection items info </td> 
</tr> 
<tr ng-repeat-end=""> 
    <td colspan="100"> 
     <table> 
      <tr ng-repeat="child in childCollection | customFilter: parent.Type:parent.seq"> 
       <td>Do stuff with child info</td> 
      </tr> 
     </table> 
    </td> 
</tr> 

這項工作完美,但我想知道,如果有一種方法可以做到這樣使用一個簡單的過濾器?

我試着做以下

<tr ng-repeat="child in childCollection | filter: (parent.Type === 'PU' ? child.pu_seq: child.dl_seq) === parent.seq"> 

但沒有奏效。認爲這可能沒有習慣?

編輯:按照要求,該樣品JSON和也,調整一個更好的想法的HTML

parentCollection = [{seq: 1, type:'PU'},{seq: 2, type:'PU'},{seq: 3, type:'PU'},{seq: 4, type:'DL'}]; 
childCollection = [{pu_seq: 1, dl_seq:4},{pu_seq: 2, dl_seq:4},{pu_seq: 3, dl_seq:4}] 

其結果將是,家長[0]將與孩子明細行[0] ,父母[1]與孩子[1],父母[2]與孩子[2]和父母[3]將具有3個孩子作爲細節,因爲所有3個孩子都有dl_seq:4,父母[4]是dl和它的序列是4

+0

在這裏發表您的JSON – Sajeetharan

+0

@Sajeetharan JSON添加 – CJLopez

回答

0

嘗試使用過濾功能在你的控制器:

function itemsFilter(parent) { 
    return function(child) { 
     return (parent.Type === 'PU' ? child.pu_seq: child.dl_seq) === parent.seq 
    }; 
} 

,然後篩選:

<tr ng-repeat="child in item.collection | filter: itemsFilter(parent)> 
+0

嗯,我想我已經做了各種與自定義過濾器的東西。我想知道的是,如果我可以用一個簡單的過濾器語句實現相同的結果,而不是依賴於函數或自定義過濾器,但感謝提示,將看看我是否可以在其他地方使用 – CJLopez