2011-12-13 22 views
0

我有包含User对象的Javascript数组。我从modelAttribute创建了这个数组。如何读取Javascript数组中的对象

var userList = '${userList}';  // userList is a spring model attribute 

userList包含User对象列表。我正在访问它作为

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]); 
     } 
    } 

但我得到的值为undefined。最初,我使用Ajax调用相同,它工作正常。

$.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]); 
     } 

    }); 

我现在怎样访问它?

编辑:
的console.log( “用户列表:” +用户列表);给出

userList : [[email protected], [email protected], [email protected]] 
+0

尝试的console.log(用户列表),看看它实际上包含 – haynar

+0

是的,在填充它之后,试着找出变量userList的确切结构。结构可能与您认为的不同。使用console.log或在分配后在萤火虫中放置一个断点并检查您的手表块),或者只需在萤火虫控制台中键入userList即可。 – techfoobar

+0

@haynar:请检查我的编辑。 – xyz

回答

0

人员使用Ajax和JSON的相同,并存储结果JS变量

userList = null; 
    $.getJSON("lookup/users", {name:"",userType:"requester"}, function(users) { 
      userList = users; 
     }); 
0

我在您的代码中看到一个错误。 for(i = 0; i < users.length; i ++) 是否有效?

+0

是的。你能详细说明吗? – xyz

+0

如果$ .getJSON返回userList是正确的,并且用户与userList相同。 (i = 0; i for(var i = 0; i blade

+0

:错误的错误是 。我已经更新了它。谢谢。 – xyz

2
var userList = '${userList}'; 

userList不是数组。

如果它应该渲染一个javascript数组,则取出引号。

+0

我尝试删除引号。它给了我错误 '错误:缺少]元素列表 源文件:http://本地主机:7009 /门户/请求/形式/添加 行:1006,列:56 源代码: var userList = [org .test.dto.UserDTO @ 3c96a9,.....' – xyz

+0

@YetAnotherCoder - 如果这是真正的来源,我不认为这是有效的JavaScript。如果我尝试在任何地方使用'@',我会得到一个错误。它看起来像你需要序列化你的数据从你用来生成这个列表的任何框架。 'org.test.dto.UserDTO @ 11d1cd59'可能是你框架中的一个对象,但它只是一个未定义/非法的JavaScript名称。看看你的'getJSON'函数中服务器的反应 - 你会看到正确的序列化JSON,你可以用它作为模板。 –

+0

这可能是原因。我正在使用'spring'框架。除此之外还有其他简单的选择吗? – xyz

1

if条件也许应该是:

if(searchKey == "" || userList[i].firstName.indexOf(searchKey) != -1 || userList[i].lastName.indexOf(searchKey) != -1) { 
    ... 
} 
+0

谢谢你的建议。 – xyz

相关问题