首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在列列表中获取数组列表,其中index =x

如何在列列表中获取数组列表,其中index =x
EN

Stack Overflow用户
提问于 2016-01-26 05:59:25
回答 1查看 453关注 0票数 2

你好,这是我第一次在堆叠溢出处问这个问题,所以请原谅你在我的问题中会看到的错误。

我是新来的网页编程和角。我创建了一个处方列表,在处方中有药品清单。

代码语言:javascript
复制
.controller('prescriptionTable',function($scope) {
var Prescription = [
    {id:1,secID:1,docID:1,medicine:[
        {name:"lozartan",quantity:2},
        {name:"biogesic",quantity:3},
        {name:"paracetamol",quantity:1},]
    },
    {id:2,secID:1,docID:1,medicine:[
        {name:"Lumiracoxib",quantity:2},
        {name:"Cloxacillin",quantity:3},
        {name:"Allopurinol",quantity:4}]
    },
];

$scope.Prescription = Prescription;
$scope.indexNum =0;

然后我使用ng-重复,这样我就可以得到药物清单了。

代码语言:javascript
复制
<div ng-controller="prescriptionTable">
    <ul>
        <li ng-repeat="px in Prescription">
            {{px.id}}
            <ul>
                <li ng-repeat="med in px.medicine">
                    Name: {{med.name}} , Quantity: {{med.quantity}}
                </li>
            </ul>
        </li>
    </ul>
</div>

如何使用$scope.indexNum筛选处方,仅显示某一处方的药物清单?

谢谢,干杯。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-26 06:02:27

如果只允许一个索引,则可以将其指定为

代码语言:javascript
复制
$scope.indexNum = 0;

在你的html中

代码语言:javascript
复制
<li ng-repeat="px in Prescription track by $index" ng-if="$index == indexNum">

甚至可以硬编码一个值0

代码语言:javascript
复制
<li ng-repeat="px in Prescription track by $index" ng-if="$index == 0">

如果您只想显示一项,则应完全避免使用ng-repeat

代码语言:javascript
复制
<div ng-controller="prescriptionTable">
    <ul>
        <li>
            {{Prescription[indexNum].id}}
            <ul>
                <li ng-repeat="med in Prescription[indexNum].medicine">
                Name: {{med.name}} , Quantity: {{med.quantity}}
                </li>
            </ul>
        </li>
    </ul>
</div>

您可以将多个索引作为

代码语言:javascript
复制
<div ng-controller="prescriptionTable">
    <ul>
        <li ng-repeat="px in Prescription track by $index" ng-if="allowedIndexes.indexOf($index) > -1">
            {{px.id}}
            <ul>
                <li ng-repeat="med in px.medicine">
                    Name: {{med.name}} , Quantity: {{med.quantity}}
                </li>
            </ul>
        </li>
    </ul>
</div>

在您的js中,您将有一个数组,如

代码语言:javascript
复制
$scope.allowedIndexes = [0,2,5,7,9];

你可以使用角度滤波器

代码语言:javascript
复制
<div ng-controller="prescriptionTable">
    <ul>
        <li ng-repeat="px in Prescription|filter:{id:indexNum}">
            {{px.id}}
            <ul>
                <li ng-repeat="med in px.medicine">
                    Name: {{med.name}} , Quantity: {{med.quantity}}
                </li>
            </ul>
        </li>
    </ul>
</div>

这将过滤包含id值为indexNum的所有对象,也就是说,如果indexNum为1,则会出现id等于1、10、11、12、21的对象.已显示。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35007827

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档