2014-08-29 3 views
0

Dans le code suivant je suis l'ajout d'événements dans ev[] tableau en utilisant la fonction ev.push() commeSinon, archiver le code suivant en utilisant javascript?

ev.push({title: v.Message,start:v.StartDate,end:v.EndDate,id: v.EventsCalendarID}) 

et maintenant je veux ajouter une condition dans laquelle je veux vérifier Isapproved == true ou false et si son vrai i peut ajouter textColor: 'black' en ev.push() ou textColor: 'red' si Isapproved== false. Comment puis-je effectuer cette vérification?

var events = [ 
     { 
     "EventsCalendarID": 21, 
     "AdminUserName": "ManjitSingh", 
     "StartDate": "2014-08-27 12:00 AM", 
     "EndDate": "8/28/2014 12:00:00 AM", 
     "Timezone": "Europe/London", 
     "Message": "mabkja", 
     "IsApproved": false, 
     "UserID": "70348398-9b8e-48a2-bbfc-c2474146d5d5", 
     "User": null 
     }, 
     { 
     "EventsCalendarID": 22, 
     "AdminUserName": "ManjitSingh", 
     "StartDate": "2014-08-29 12:00 AM", 
     "EndDate": "8/29/2014 1:00:00 AM", 
     "Timezone": "Europe/London", 
     "Message": "ffd", 
     "IsApproved": true, 
     "UserID": "70348398-9b8e-48a2-bbfc-c2474146d5d5", 
     "User": null 
     } 
    ]; 

function success(events) { 
    var ev = []; 
    $.each(events, function (i, v) { 
    ev.push({ 
     title: v.Message, 
     start:v.StartDate, 
     end:v.EndDate, 
     id: v.EventsCalendarID 
    }); 
    }); 
} 
+1

Ajoutez 'textColor: (v.estApproved? 'Black': 'red')' – icke

Répondre

0

Vous pouvez utiliser l'opérateur ternaire ? :

ev.push({ 
    title:  v.Message, 
    start:  v.StartDate, 
    end:  v.EndDate, 
    id:  v.EventsCalendarID, 
    textColor: v.IsApproved === true ? 'black' : 'red' 
}); 
+0

Il n'est pas nécessaire de comparer 'v.IsApproved' à' true'. – zbr

0
ev.push({textColor: (Isapproved?'black':'red')}) 
1

S'il vous plaît essayer avec l'extrait de code ci-dessous.

function success(events) { 
    var ev = []; 
    $.each(events, function (i, v) { 
    ev.push({ 
     title: v.Message, 
     start:v.StartDate, 
     end:v.EndDate, 
     id: v.EventsCalendarID, 
     textColor: v.IsApproved ? 'black' : 'red' 
    }); 
    }); 
} 

Remarque Si la condition ci-dessus ne fonctionnait que s'il vous plaît essayer au-dessous

textColor: v.IsApproved == true ? 'black' : 'red' 
textColor: v.IsApproved === true ? 'black' : 'red' 
textColor: v.IsApproved == 'true' ? 'black' : 'red' 

Permettez-moi de savoir si je suis comprends pas votre question.

0

Juste pour l'exhaustivité des réponses, vous pouvez bien sûr faire quelque chose comme ça aussi:

$.each(events, function (i, v) { 
    var color; 
    if (v.IsApproved) { 
     color = 'black'; 
    else { 
     color = 'red'; 
    } 
    ev.push({ 
     title: v.Message, 
     start: v.StartDate, 
     end: v.EndDate, 
     id: v.EventsCalendarID, 
     textColor: color 
    }); 
}); 

Mais il est certainement mieux d'aller avec l'opération ternaire en utilisant ? :. Bien que dans certains cas, si la condition utilisant cette opération ternaire serait trop compliquée, il serait peut-être préférable d'aller avec la solution que j'ai indiquée ci-dessus juste pour une meilleure lisibilité du code.

Questions connexes