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>