嘿我试图只显示被检查的“文本”:来自布尔值数组的“true”。所选数据在“监视列表”视图中呈现,然后在单击调查项目时,您将被定向到一个“surveymore”视图,显示了大量数据。它是在“surveymore”中,我想过滤...基本上只渲染“过敏”,而不是{text:“Allergies”,例如:check:true}。
Surveylist观点:
<ion-item ng-class="" ng-repeat="object in lines" class="item-thumbnail-left item-icon-right item-text-wrap" href="#/moresurvey/{{object.id}}">
<a><h2>{{object.visafname}}</h2></a>
<h2 >{{object.visalname}}</h2>
<p>{{object.gender}}</p>
<i class="icon ion-chevron-right icon-accessory"></i>
</ion-item>
Surveymore观点:
<ion-item class="item more-item">
<p class="moredetails location"> Ailments: </br> </br>
{{Details.diagnosed}}</p>
</ion-item>
范围:
$scope.Diagnosed = [
{ text: "Allergies", checked: true},
{ text: "ADHD", checked: false},
{ text: "Alcohol/Drug Dependence", checked: false},
{ text: "Asthma", checked: false},
{ text: "Autism", checked: false},
{ text: "Cancer", checked: false},
{ text: "Diabetes", checked: false},
{ text: "Eating Disorder", checked: false},
{ text: "Fertility Problems", checked: false},
{ text: "Heart Disease", checked: false},
{ text: "High Cholesterol", checked: false},
{ text: "Menopause", checked: false},
{ text: "Mood Disorders (e.g., anxiety, depression)", checked: false},
{ text: "Obesity", checked: false},
{ text: "Stroke", checked: false},
{ text: "Prefer not to answer", checked: false}
];
返回范围如下所示:
$scope.Details.diagnosed = _.filter( $scope.Details.diagnosed, function(object){
return object.checked == true;
})
有人可以帮助我吗?
答案 0 :(得分:1)
如果要检索值为checked === true
的对象,可以执行以下操作:
var arrayOfObjs = $scope.Diagnosed.filter(function (value) {
return value.checked;
});
另外,如果你只想获得文本,你可以这样做:
var arrayOfTexts = $scope.Diagnosed.filter(function(value) {
return value.checked;
}).map(function(item) {
return item.text;
});
修改强>
如果您想在视图中显示它,只需使用原生 filter
:
<p ng-repeat="d in Diagnosed | filter: { checked: true }" ng-bind="d.text"></p>
答案 1 :(得分:1)
你可以使用ng-if。
请注意,使用ngIf删除元素时,其范围将被销毁 并且在恢复元素时创建新范围。
angular.module('app',[]).controller('ctrl',function($scope){
$scope.Diagnosed = [
{ text: "Allergies", checked: true},
{ text: "ADHD", checked: false},
{ text: "Alcohol/Drug Dependence", checked: false},
{ text: "Asthma", checked: false},
{ text: "Autism", checked: false},
{ text: "Cancer", checked: false},
{ text: "Diabetes", checked: false},
{ text: "Eating Disorder", checked: false},
{ text: "Fertility Problems", checked: false},
{ text: "Heart Disease", checked: false},
{ text: "High Cholesterol", checked: false},
{ text: "Menopause", checked: false},
{ text: "Mood Disorders (e.g., anxiety, depression)", checked: false},
{ text: "Obesity", checked: false},
{ text: "Stroke", checked: false},
{ text: "Prefer not to answer", checked: false}
];
})
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>JS Bin</title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.0/angular.min.js"></script>
</head>
<body ng-app="app" ng-controller="ctrl">
<div ng-repeat="d in Diagnosed" ng-if="d.checked">{{d.text}}</div>
</body>
</html>