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]   
0
xyz 13 déc. 2011 à 10:34

4 réponses

Meilleure réponse

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;
         });
0
xyz 13 déc. 2011 à 11:15

Votre condition if devrait probablement être:

if(searchKey == "" || userList[i].firstName.indexOf(searchKey) != -1 || userList[i].lastName.indexOf(searchKey) != -1) {
    ...
}
1
techfoobar 13 déc. 2011 à 06:49
var userList = '${userList}';

userList n'est pas un tableau.

Retirez les guillemets s'il est censé rendre un tableau javascript.

2
Yuji 'Tomita' Tomita 13 déc. 2011 à 06:46

Je vois une erreur dans votre code. pour (i = 0; i

0
blade 13 déc. 2011 à 06:41