Je n'ai aucune expérience dans Knockout js mais depuis que je dois mettre en œuvre la fonctionnalité et lutter pour mettre la main sur ce scénario. Les fichiers JSP récupèrent des données JSON et les transmettent au modèle HTML pour créer une table dynamique. Mais je dois faire correspondre des valeurs particulières et donner un style différent aux cellules (besoin de changer de couleur).Application de style à une cellule particulière dans la table dynamique JS knockout en fonction de sa valeur
J'ai exploré et découvert si Foreach est utilisé et si utiliser if condition pour appliquer la classe css peut fonctionner mais comme la table est créée dynamiquement, il est difficile de l'obtenir.
En fournissant le code ci-dessous, je sais comment le faire de manière angulaire, mais puisque son knock-out JS est en difficulté.
Les données JSON ci-dessus allant chercher dynamiquement à partir de DB, si App Server répond carte puis sur « Oui » carte autrement « Non », en plus je dois mettre Oui signifie la couleur verte, Non signifie la couleur rouge. J'ai mappé les valeurs de réponse, cela fonctionne très bien. Mais je ne suis pas en mesure de définir des couleurs pour les valeurs de réponse (Oui signifie vert et Non signifie couleur rouge) dans Knockout js. Pouvez-vous s'il vous plaît me suggérer sur ce
<table id="monitorTable" summary="Table Data Test" aria-label="Table Data Test"
contextmenu="empty"
data-bind="ojComponent: {component: 'ojTable',
data: testdatasource,
columnsDefault: {sortable: 'disabled'},
columns: tableColumns,
scrollPolicy: scrollPolicy,
scrollPolicyOptions: scrollPolicyOptions}"></table>
Ci-dessous Voici les données JSON extraites du serveur et transmis à la table
{
"label": "App Server",
"collection": [{
"responding": "Yes",
"appserver": "DEFAULT",
"className": "success",
"id": 1
}, {
"responding": "No",
"appserver": "ORACLEQUEUE",
"className": "failed",
"id": 2
}, {
"responding": "No",
"appserver": "SECONDARY",
"className": "failed",
"id": 3
}, {
"responding": "No",
"appserver": "TERTIARY",
"className": "failed",
"id": 4
}],
"serverTimestamp": "2017-07-07T03:51:21.949+0000",
"dataTimestamp": "2017-07-07T03:51:21.949+0000",
"tableColumns": [{
"headerText": "App Server",
"field": "appserver",
"sortable": "disabled"
}, {
"headerText": "Responding",
"field": "responding",
"sortable": "disabled",
"className": ""
}],
"scrollPolicy": "auto",
"scrollPolicyOptions": {
"fetchSize": "15",
"maxCount": "1000"
}
}
Voici le code qui récupère des données à partir du serveur par les fichiers JSP
function addScalabilityMonitors() {
console.log("moved to scalability");
//App Scalability
monitors.addMonitorPoint(sts.apiBaseUrl() + 'ScalabilityAppServer1.jsp', 'oj-masonrylayout-tile-3x2', true, 15000, 'grid', 'scalability');
//Web Scalability
monitors.addMonitorPoint(sts.apiBaseUrl() + 'ScalabilityWebServer1.jsp', 'oj-masonrylayout-tile-3x2', true, 15000, 'grid', 'scalability');
//Response Time
monitors.addMonitorPoint(sts.apiBaseUrl() + 'Scalability.json', 'oj-masonrylayout-tile-3x2', true, 15000, 'gauge', 'scalability');
//Log files
monitors.addMonitorPoint(sts.apiBaseUrl() + 'logfile.json', 'oj-masonrylayout-tile-3x2', true, 15000, 'grid', 'scalability');
monitors.addMonitorPoint(sts.apiBaseUrl() + 'ProcessSchedules.json', 'oj-masonrylayout-tile-3x2', true, 15000, 'grid', 'scalability');
monitors.addMonitorPoint(sts.apiBaseUrl() + 'BusinessSequence.json', 'oj-masonrylayout-tile-3x2', true, 15000, 'grid', 'scalability');
monitors.addMonitorPoint(sts.apiBaseUrl() + 'DatabaseJobs.json', 'oj-masonrylayout-tile-3x2', true, 15000, 'grid', 'scalability');
//myPostProcessingLogic();
}
J'ai essayé de lire la documentation pour cela, j'ai aussi essayé différentes choses mais je n'ai pas réussi à l'implémenter.