将自定义过滤器应用于单个属性的ng-repat

时间:2017-02-02 07:59:09

标签: angularjs ng-repeat angularjs-filter

我必须创建一个自定义过滤器才能仅应用于我的模型的属性。 以下是过滤器:

.filter("cpesFilter", function() {
    return function (arrayToFilter, value) {
        var output = [];

        if (value == undefined || value == "") {
            output = arrayToFilter;
        }
        else {
            angular.forEach(arrayToFilter, function (arrayItem) {

                if (arrayItem.connettivita == value) {
                    output.push(arrayItem);
                }
            });
        }

        return output;
    };
});

这里是HTML:

<tbody class="no_body_bordered"><!--  | cpesFilter:search.connettivita -->
    <tr ng-repeat="modello in cpes.modelli | filter:{ prodotto: search.prodotto, vendor: search.vendor, connettivita:cpesFilter(cpes.modelli, search.connettivita) }  " ng-click="selectModello(modello.upc)" 
        ng-class="{ selected: modello.upc === upcCpeSelezionato }" class="selectable-row">
        <td style="width:15%">{{ modello.vendor }}</td>
        <td style="width:15%">{{ modello.prodotto }}</td>
        <td style="width:20%">{{ modello.connettivita }}</td>
        <td style="width:10%">{{ modello.voipFxs }}</td>
        <td style="width:10%">{{ modello.voip }}</td>
        <td style="width:10%">{{ modello.wifi ? "SI" : "NO" }}</td>
        <td style="width:10%">{{ modello.vpnS2s ? "SI" : "NO" }}</td>
        <td style="width:10%">{{ modello.vpnServer ? "SI" : "NO" }}</td>
    </tr>
</tbody>

通过这种方式,我从未进入过滤器。但是如果我以这种方式应用过滤器,它就可以工作:

<tr ng-repeat="modello in cpes.modelli | cpesFilter:search.connettivita"> 

但是,它不是我想要的。如何更正生产线?

谢谢

0 个答案:

没有答案