代码之家  ›  专栏  ›  技术社区  ›  ricardol

如果内部ng repeat未过滤我的数组,则为ng

  •  0
  • ricardol  · 技术社区  · 7 年前

    [{"label":"wlan1","type":"wlan1"},
     {"label":"br-wlan","type":"br-wlan"},
     {"label":"tun_cas","type":"tun_cas"},
     {"label":"nfacct_bytes","type":"nfacct_bytes"},
     {"label":"wlan0","type":"wlan0"},
     {"label":"lte0","type":"lte0"},
     {"label":"nfacct_packets","type":"nfacct_packets"}]
    

    在我看来,我不想显示nfacct\u字节和nfacct\ u数据包的类型,为此我做了以下工作:

    <tab ng-if="type.label !== 'nfacct_bytes' || type.label !== 'nfacct_packets'" 
         ng-repeat="type in dataGraph.network.types" heading="{{type.label}}"
         select="changeSubTab(type.type)" disable="!tabClick" >                                                                                                
    

    解决方案:

    <tab ng-if="type.label !== 'nfacct_bytes' && type.label !== 'nfacct_packets'" 
         ng-repeat="type in dataGraph.network.types" heading="{{type.label}}"
         select="changeSubTab(type.type)" disable="!tabClick" > 
    
    2 回复  |  直到 7 年前
        1
  •  2
  •   Sajeetharan    7 年前

    我想你需要这样检查,

    <tab ng-if="type.label !== 'nfacct_bytes' && type.label !== 'nfacct_packets' "> 
    </tab>
    

    演示

    var myApp=angular.module('myApp',[]);
     myApp.controller('thecontroller',function($scope){
           $scope.dataGraph = {};
           $scope.dataGraph.network = {};
             $scope.dataGraph.network.types = [{"label":"wlan1","type":"wlan1"},{"label":"br-wlan","type":"br-wlan"},{"label":"tun_cas","type":"tun_cas"},{"label":"nfacct_bytes","type":"nfacct_bytes"},{"label":"wlan0","type":"wlan0"},{"label":"lte0","type":"lte0"},{"label":"nfacct_packets","type":"nfacct_packets"}];
    });
     
    <!DOCTYPE html>
        <html>
            <head>
              <title>ng-Messages Service</title>
              <script src='https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js'></script>
                <script src='https://code.angularjs.org/1.5.0-rc.0/angular.min.js'></script>
            </head>
            <body ng-app="myApp">
                <div ng-controller='thecontroller'>
                <div  ng-repeat="type in dataGraph.network.types">
               <div ng-if="type.label !== 'nfacct_bytes' && type.label !== 'nfacct_packets' "> {{type.label}}
                </div>
                </div>
                </div>
            </body>
        </html>
        2
  •  0
  •   himanshu    7 年前

    使用

    在filter中,表达式可以是字符串、对象或函数。这里我用过 表达式作为对象 .

    让控制器像这样

      app.controller('MainCtrl', function($scope) {
        $scope.Values = 
         [{"label":"wlan1","type":"wlan1"},
         {"label":"br-wlan","type":"br-wlan"},
         {"label":"tun_cas","type":"tun_cas"},
         {"label":"nfacct_bytes","type":"nfacct_bytes"},
         {"label":"wlan0","type":"wlan0"},
         {"label":"lte0","type":"lte0"},
        {"label":"nfacct_packets","type":"nfacct_packets"}];
    });
    

    所需的HTML

      <div ng-repeat="value in Values |filter: {type: '!nfacct_bytes'}">
          {{value.label}}
      </div>
    

    https://plnkr.co/edit/IUvaZbzHdV0M1s9TRzAq?p=preview