AngularJS:根据json数组的键值隐藏或显示对象
问题描述:
我是角度新手,我有这2个问题:
我收到了json数据,我想在我的视图中显示不同的文本,这取决于我的JSON的关键。
例如:如果密钥是rcs
,hello this is rcs
将显示在我的视图中,或者如果密钥为bank
,hello this is my bank
将显示在我的视图中。AngularJS:根据json数组的键值隐藏或显示对象
而第二个问题:我只想显示我的对象,如果“可见”==“真”。
所以我试图创建具有相同的密钥的json数据(截图)一个对象,并有我想要显示的值。之后,我不知道如何管理这个。甚至更少显示我的对象,如果键“可见”==“真”。
现在,我只能成功显示我的json数据的关键。
这里是视图:
<ion-view view-title="Liste des mentions">
<ion-content>
<div class="item item-divider">
<button class="ion-ios-minus-outline" type="button" name="button"></button>
<button style="float:right;"class="ion-arrow-move"type="button" name="button" ng-click="moovelement()"></button>
</div>
<ul class="list" ng-repeat="(key,value) in mention">
<li class="item" ng-style="displaymentions">{{key}}
</li>
</ul>
<button class="ion-ios-plus-outline" type="button" name="button" ng-click="addmention()">Ajouter des mentions</button>
</ion-content>
</ion-view>
和控制器:
.controller('MentionsCtrl',['$scope','$stateParams','$state','sendtoken',
function($scope, $stateParams, $state,sendtoken) {
sendtoken.send(sessionStorage.getItem('token'))
.then(function(userdata){
var mentionstva = userdata.data.mentions.vat.visible;
sessionStorage.setItem('usermentionstva',mentionstva);
var mentionsretard = userdata.data.mentions.delay.visible;
sessionStorage.setItem('usermentionsretard',mentionsretard);
var mentionsbank = userdata.data.mentions.bank.visible;
sessionStorage.setItem('usermentionsbank',mentionsbank);
console.log(mentionsbank);
var mentionsperso = userdata.data.mentions.free.visible;
sessionStorage.setItem('usermentionsperso',mentionsperso);
var mentionscga = userdata.data.mentions.cga.visible;
sessionStorage.setItem('usermentionscga',mentionscga);
var mentionsrcs = userdata.data.mentions.rcs.visible;
sessionStorage.setItem('usermentionsrcs',mentionsrcs);
$scope.mention = userdata.data.mentions;
if(userdata.data.mentions.visible == "false"){
$scope.displaymentions = {"display": "none"};
}
console.log($scope.mention);
});
$scope.jsontab = {
"bank": "Coordonnées bancaires",
"vat": "TVA non applicable",
"delay": "Retard de paiement",
"rcs": "Immatriculation RCS",
"cga": "Centre de gestion agrée",
"free": "Mention personnelle"
};
$scope.retard = function(){
$state.go('app.retard');
};
$scope.immatriculation = function(){
$state.go('app.immatrcs');
};
$scope.addmention = function(){
$state.go('app.addmentions');
};
}])
答
你已经有答案了,但是这一次我觉得是有点简单,符合你已经有了JSON,而不需要你在你的控制器来定义任何新的东西。
<ul class="list" ng-repeat="(key,value) in mention" ng-if="mention[key].visible">
<li class="item" ng-style="displaymentions">Hello this is my {{key}}</li>
</ul>
答
试试这个你的第一个问题:
<ul ng-repeat="mention in mentions"></ul>
<li ng-if="mention === rcs"> Hello this is rcs </li>
<li ng-if="mention === bank"> Hello this is Bank </li>
</ul>
为了您的第二个问题:
添加ng-if="visible===true"
到对象
或在你的控制器,你可以设置一个$scope
变量作为默认假,当你打电话给你的对象,那个时候让真正
中,然后使用它ng-if
为真实的情况。
'NG秀=“可见”'https://docs.angularjs.org/api/ng/directive/ngShow –