你好,这是我第一次在stack overflow问你,请原谅我的问题中的错误。
我是网络编程和角度的新手。
我开了一张处方单,里面有一张药单

.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 repeat这样我就可以得到药物清单了
<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筛选处方以仅显示某个处方的药物列表?
谢谢,干杯。

最佳答案

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

$scope.indexNum = 0;

在你的html中
<li ng-repeat="px in Prescription track by $index" ng-if="$index == indexNum">

或者
您甚至可以硬编码一个值0
<li ng-repeat="px in Prescription track by $index" ng-if="$index == 0">

或者
如果只想显示一个项目,则应避免同时显示ng-repeat
<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>

或者
可以将多个索引设置为
<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中,您将有一个数组
$scope.allowedIndexes = [0,2,5,7,9];

或者
可以使用角度过滤器
<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>

这将过滤包含值为idindexNum的所有对象,即如果indexNum为1,则会有id等于1、10、11、12、21的对象。。。显示。

10-07 21:09