J'ai un tableau Javascript qui contient un objet User
. J'ai créé ce tableau à partir de modelAttribute
.
var userList = '${userList}'; // userList is a spring model attribute
userList
contient la liste des User
objets. J'y accède en tant que
for(i=0;i<userList.length;i++)
{
if(searchKey == "" || userList[i].indexOf(searchKey) != -1)
{
$('#userTable').dataTable().fnAddData( [
userList[i].firstName,
userList[i].lastName,
userList[i].institution,
userList[i].email] );
}
}
Mais j'obtiens des valeurs comme undefined
. Au départ, j'ai utilisé l'appel Ajax pour la même chose et cela a bien fonctionné.
$.getJSON("lookup/users", {name:searchKey,userType:"requester"}, function(userList) {
// It works fine
for(i=0;i<userList.length;i++)
{
$('#userTable').dataTable().fnAddData( [
userList[i].firstName,
userList[i].lastName,
userList[i].institution,
userList[i].email] );
}
});
Comment puis-je y accéder maintenant?
MODIFIER:
console.log ("userList:" + userList); donne
userList : [org.test.dto.UserDTO@11d1c59, org.test.dto.UserDTO@302f39, org.test.dto.UserDTO@16c57b1]
4 réponses
Ajax et Json utilisés pour le même résultat et stocké dans la variable JS
userList = null;
$.getJSON("lookup/users", {name:"",userType:"requester"}, function(users) {
userList = users;
});
Votre condition if
devrait probablement être:
if(searchKey == "" || userList[i].firstName.indexOf(searchKey) != -1 || userList[i].lastName.indexOf(searchKey) != -1) {
...
}
var userList = '${userList}';
userList
n'est pas un tableau.
Retirez les guillemets s'il est censé rendre un tableau javascript.
Je vois une erreur dans votre code. pour (i = 0; i
Questions connexes
De nouvelles questions
javascript
Pour des questions concernant la programmation dans ECMAScript (JavaScript / JS) et ses divers dialectes / implémentations (hors ActionScript). Veuillez inclure toutes les balises pertinentes dans votre question; par exemple, [node.js], [jquery], [json], etc.