html - 如何使用 Angularjs 过滤器过滤表中的两个 ng-module 值?

标签 html css angularjs meanjs

我在我的应用程序中使用 MEAN 堆栈,并将 AngularJS 作为我的前端。如何过滤表中的两个 ng-module 值。 My Plunker without filterMy Plunker with filter .

  • 我想过滤表中的两个 ng-module 值。
  • 我可以过滤单个 ng-module 值,例如使用此 | filter:{raised: 'true'} 在 ng-repeat 中。
  • 如果我使用这个 |,我将无法过滤两个 ng- 模块值filter:{raised: 'true'} 在 ng-repeat 中。
  • 我正在寻找的东西:- 如果 raised 值为 true 意味着这些真实值只需要显示在表格中,以便我使用 | filter:{raised: 'true'} 在 ng-repeat 中过滤。
  • 如果 raised_two 值也是 true 意味着我应该需要在表格中显示这些 true 值,以便我使用 | filter:{raised_two: 'true'} 在 ng-repeat 中过滤..
  • 但是,如果我们在 ng-repeat 中使用了两个 ng-module 过滤器,那么表格显示为 empty .... 那么如何才能我在表中过滤了两个 ng-module 值....
  • 我想在表中显示 raised 模块和 raised_two 模块的 true 值。

我的过滤器:-

<tr ng-repeat="data in  srdebitnote | filter:{raised: 'true'} ">

 <tr ng-repeat="data in  srdebitnote | filter:{raised_two: 'true'} ">

我的 html:-

 **<tr ng-repeat="data in  srdebitnote | filter:{raised: 'true'} ">
           <td> {{data.buyer_name}}</td>
            <td> {{data.supplier_name}}</td>
            <td> {{data.proforma_invoice_no}}</td>
            <td> {{data.purchase_order_no}}</td>
            <td> {{data.raised}}</td>
            <td> {{data.raised_two}}</td>
        </tr>**

我的 Controller :-

 $scope.srdebitnote = [{
    "_id": "57db960f6a3b14d20dfb39d6",
    "user": {
    "_id": "57400c32bd07906c1308e2cf",
    "displayName": "mani selvam"
    },
    "__v": 0,
    "created": "2016-09-16T06:49:51.970Z",
    "shipment_id": "57c815a89a9b487f14b40bab",
    "raised_two": true,
    "raised": false,
    "invoice_number": "E21_56",
    "proforma_invoice_no": "6 years",
    "purchase_order_no": "8888",
    "supplier_name": "veena",
    "buyer_name": "risha"
    },

    {
    "_id": "57daa24fafebd11818b55d94",
    "user": {
    "_id": "57400c32bd07906c1308e2cf",
    "displayName": "mani selvam"
    },
    "__v": 0,
    "created": "2016-09-15T13:29:51.398Z",
    "shipment_id": "57c815a89a9b487f14b40bab",
    "raised_two": true,
    "raised": false,
    "invoice_date": "2016-09-13",
    "invoice_number": "E21_56",
    "proforma_invoice_no": "6 years",
    "purchase_order_no": "8888",
    "supplier_name": "rubi",
    "buyer_name": "kanishka"
    },

    {
    "_id": "57becb6ddc4a44520ac628f4",
    "user": {
    "_id": "57400c32bd07906c1308e2cf",
    "displayName": "mani selvam"
    },
    "__v": 0,
    "created": "2016-08-25T10:41:49.133Z",
    "shipment_id": "57becb69dc4a44520ac628f3",
    "raised_two": false,
    "raised": true,
    "invoice_number": "E21_check",
    "proforma_invoice_no": "kdkdkd",
    "purchase_order_no": "1356",
    "supplier_name": "karikalan",
    "buyer_name": "ms"
    },

    {
    "_id": "57bdaa65ecc4b1701401fce4",
    "user": {
    "_id": "57400c32bd07906c1308e2cf",
    "displayName": "mani selvam"
    },
    "__v": 0,
    "created": "2016-09-15T13:29:51.398Z",
    "shipment_id": "57c815a89a9b487f14b40bab",
    "raised_two": false,
    "raised": true,
    "invoice_date": "2016-09-13",
    "invoice_number": "E21_56",
    "proforma_invoice_no": "6 years",
    "purchase_order_no": "8888",
    "supplier_name": "rubi",
    "buyer_name": "kanishka"
    }];

如果我使用像这样的过滤器,数据在表中显示为空:-

<tr ng-repeat="data in  srdebitnote | filter:{raised: 'true'} | filter:{raised_two: 'true'} ">

最佳答案

您可以像这样编写自己的过滤器:

<tr ng-repeat="data in  srdebitnote | filter: raised">

//Controller
 $scope.raised = function(item){
    if (raised.raised && raised.raised_two){
        return true;
    }
    return false;
 };

如果您想执行 OR 而不是 AND,那么您可以过滤任一个条件为真。

工作 Plunkr here

关于html - 如何使用 Angularjs 过滤器过滤表中的两个 ng-module 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39528720/

相关文章:

jquery - CSS/JQuery 选择器奇怪的行为

javascript - 创建一个绑定(bind)到 AngularJS 中其他输入的计算值数组

angularjs - 如何在 Angular Material 的 md-autocomplete 组件中禁止自由文本?

html - safari margin top 不同于 chrome 和 firefox

node.js - 无法在nodejs服务器提供的Safari中播放mp4视频

html - 与按下提交按钮时将信息拉入文本框相比,表单的用途是什么?

javascript - 更改容器上的 "overflow"属性不会在运行时更改内部元素大小?

javascript - 限制滚动到 DIV

html - Angular Material Nav Sidebar 仅在响应式调整大小时显示

javascript - 在函数中获得正确的作用域(不使用 that = this)