我是棱角分明的新人,我有这两个问题:
我收到了json数据,我希望在我的视图中显示不同的文本,这取决于我的json的密钥。
示例:如果密钥为rcs
,hello this is rcs
将显示在我的视图中,或者密钥为bank
,hello this is my bank
将显示在我的视图中。
第二个问题:我只想在“可见”==“真”的情况下显示我的对象。
所以我尝试创建一个与我的json数据(屏幕截图)具有相同键的对象,并具有我想要显示的值。在那之后,我不知道如何管理这个。如果键“visible”==“true”,则更少显示我的对象。
现在,我只能成功显示我的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');
};
}])
答案 0 :(得分:1)
在第一期中试试这个:
<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
变量设置为默认 false ,当您调用对象时,该时间使其 true >
然后在ng-if
中使用它以获得真实条件。
答案 1 :(得分:1)
你已经有了答案,但我认为这个答案更简单,并且符合你已经拥有的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>