你好,这是我第一次在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>
这将过滤包含值为
id
的indexNum
的所有对象,即如果indexNum
为1,则会有id
等于1、10、11、12、21的对象。。。显示。