2017-03-29 25 views
0

我正在使用ng-repeate,並且在我的過濾器中,我需要使用無法由內部選擇過濾器引用的上邊界列表中的一個字段,所以我需要設置在HTML塊過濾器,而不是在js文件.somthing這樣的:如何在ng-repeat中添加兩個過濾條件或條件Angular JS

<div ng-repeat="groupfield in gCtrl.groupingFields"> 
     <select ng-options="c.id as c.title for c in gCtrl.columnList | filter : {available:true } || {id:groupfield.fieldName}"> 
</select></div> 
+0

看到這一點:http://stackoverflow.com/questions/21411686/how-to-filter-multiple-values-or-operation-in-angularjs-with-checkbox – Jenny

+0

這不禁引起我需要訪問groupField項目 –

+0

post groupfields data – Jenny

回答

0

您可以通過過濾器的自定義功能。你不能將參數傳遞給實際的過濾函數,所以訣竅是創建一個返回過濾函數的函數,並將groupfield傳遞給它。

function MyController() { 
    this.customFilter = customFilter; 

    function customFilter(groupfield) { 
     return function(value, index, array) { 
      return value.available || groupfield.fieldName === value.id; 
     } 
    } 
} 

<div ng-repeat="groupfield in gCtrl.groupingFields"> 
    <select required class="form-control" ng-model="groupfield.fieldName" ng-options="c.id as c.title for c in gCtrl.columnList | filter : groupCtrl.customFilter(groupfield)"></select> 
</div> 
+0

感謝您的答案,但它並沒有爲我工作,第一個解決方案失敗,出現此錯誤:令牌'{'是一個意外的令牌... 第二個也提出了錯誤:引用調用,應用或在角度表達式中綁定是不允許的! –

+0

我也嘗試gCt​​rl.customFilter(c,groupField)沒有任何綁定,但它不工作,因爲undefiend值和groupField在CustomFilter函數調用結果 –

+0

我的不好。自從我與AngularJS合作已經有一段時間了。檢查我更新的答案,我相信它現在應該可以工作。 –