Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在使用Limito以及ng show和ng repeat后,无法显示筛选的项目_Javascript_Angularjs - Fatal编程技术网

Javascript 在使用Limito以及ng show和ng repeat后,无法显示筛选的项目

Javascript 在使用Limito以及ng show和ng repeat后,无法显示筛选的项目,javascript,angularjs,Javascript,Angularjs,我有一个著名的地方的数组,每个地方包含一个旅游数组,包含20个元素20是每个著名地方下的旅游次数。e、 g.“埃及”在其吸引人的地点有20次旅行。但问题是,有些旅游团不包含任何酒店,但有些旅游团有酒店。这是我的密码 <div ng-repeat="tour in place.tours | limitTo:3" ng-show="tour.hotels.length != 0"> <li> <a ng-repeat="hName in tour.hote

我有一个著名的
地方的数组
,每个地方包含一个
旅游
数组,包含20个元素20是每个著名地方下的旅游次数。e、 g.“埃及”在其吸引人的地点有20次旅行。但问题是,有些旅游团不包含任何酒店,但有些旅游团有酒店。这是我的密码

<div ng-repeat="tour in place.tours | limitTo:3" ng-show="tour.hotels.length != 0">
  <li>
    <a ng-repeat="hName in tour.hotels"> {{hName.name}}
    </a>
  </li>
 </div>


  • 如何仅显示筛选的酒店列表中的前3个酒店名称?或者我做错了什么?

    我不知道我是否正确理解您的问题,但是如果您试图为每次旅行获得前3家酒店,那么您应该在第2次ng重复中放置Limito过滤器。

    我不知道我是否正确理解您的问题,但是如果您试图为每次旅行获得前3家酒店,然后您应该在第二次ng重复中放置limitTo过滤器。

    您需要先使用自定义过滤器,然后再使用limit

    JS

    HTML


    您需要先使用自定义筛选器,然后再使用限制

    JS

    HTML


    在旅游中使用过滤器
    旅游|过滤器:{hotels:[]}| limito:3

    <!doctype html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>Example - example-filter-filter-production</title>
      <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.min.js"></script>
    </head>
    <body ng-app="">
      <div ng-init="tours = [
        {name:'A',    hotels : [ {name:'AA'},{name:'AB' }] ,    },
        {name:'B',    hotels : [ {name:'AA'},{name:'AB' }] ,    },
        {name:'D',    hotels : [ {name:'AA'}] },
        {name:'E',    hotels : [ {name:'AA'},{name:'AB' }] ,    },
        {name:'F',    hotels : [ {name:'AA'},{name:'AB' }] ,    },
        {name:'G',    hotels : [ {name:'AA'},{name:'AB' }] ,    },
        {name:'NONEA',       },
        {name:'NONEB',       }
        ]
                             "></div>
        <div ng-repeat="tour in tours | filter: { hotels: []}">
        Tour name : {{tour.name}} {{tour.hotels.length}} <br>
        <div ng-repeat="hotel in tour.hotels">
          Hotel Name : {{hotel.name}}
          <br/>
        </div>
        <br>
      </div>
    </html>
    
    
    示例-示例过滤器生产
    旅游团名称:{{Tour.name}{{Tour.hotels.length}}
    酒店名称:{{Hotel.Name}


    在旅游中使用筛选器
    旅游|筛选器:{hotels:[]}| limito:3

    <!doctype html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>Example - example-filter-filter-production</title>
      <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.min.js"></script>
    </head>
    <body ng-app="">
      <div ng-init="tours = [
        {name:'A',    hotels : [ {name:'AA'},{name:'AB' }] ,    },
        {name:'B',    hotels : [ {name:'AA'},{name:'AB' }] ,    },
        {name:'D',    hotels : [ {name:'AA'}] },
        {name:'E',    hotels : [ {name:'AA'},{name:'AB' }] ,    },
        {name:'F',    hotels : [ {name:'AA'},{name:'AB' }] ,    },
        {name:'G',    hotels : [ {name:'AA'},{name:'AB' }] ,    },
        {name:'NONEA',       },
        {name:'NONEB',       }
        ]
                             "></div>
        <div ng-repeat="tour in tours | filter: { hotels: []}">
        Tour name : {{tour.name}} {{tour.hotels.length}} <br>
        <div ng-repeat="hotel in tour.hotels">
          Hotel Name : {{hotel.name}}
          <br/>
        </div>
        <br>
      </div>
    </html>
    
    
    示例-示例过滤器生产
    旅游团名称:{{Tour.name}{{Tour.hotels.length}}
    酒店名称:{{Hotel.Name}


    我试过了。这是行不通的。目前,我每次旅行只有一家酒店。如果我在一次旅行中有更多的酒店,第二次ng repeat的“限制”将限制这个数字。我试过了。这是行不通的。目前,我每次旅行只有一家酒店。如果我在一次巡演中有更多的酒店,则第二次ng repeat的“限制”将限制该数量。不确定我是否有问题,但尝试将
    ng show
    更改为
    ng if
    ,以便前3个元素不会被渲染。如果情况并非如此,请共享您的数据并澄清您试图实现的目标。您需要使用过滤器不确定是否有问题,但请尝试将
    ng show
    更改为
    ng If
    ,以便前3个元素不会被渲染。如果不是这样的话,请分享您的数据并澄清您试图实现的目标。您需要使用过滤器谢谢回答。谢谢回答。谢谢@nitz我现在使用了filer谢谢@nitz我现在使用了filer
    <!doctype html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>Example - example-filter-filter-production</title>
      <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.min.js"></script>
    </head>
    <body ng-app="">
      <div ng-init="tours = [
        {name:'A',    hotels : [ {name:'AA'},{name:'AB' }] ,    },
        {name:'B',    hotels : [ {name:'AA'},{name:'AB' }] ,    },
        {name:'D',    hotels : [ {name:'AA'}] },
        {name:'E',    hotels : [ {name:'AA'},{name:'AB' }] ,    },
        {name:'F',    hotels : [ {name:'AA'},{name:'AB' }] ,    },
        {name:'G',    hotels : [ {name:'AA'},{name:'AB' }] ,    },
        {name:'NONEA',       },
        {name:'NONEB',       }
        ]
                             "></div>
        <div ng-repeat="tour in tours | filter: { hotels: []}">
        Tour name : {{tour.name}} {{tour.hotels.length}} <br>
        <div ng-repeat="hotel in tour.hotels">
          Hotel Name : {{hotel.name}}
          <br/>
        </div>
        <br>
      </div>
    </html>