从gsp中从控制器传递的对象列表中获取特定元素

时间:2016-11-06 09:26:46

标签: jquery grails

我将控制器中的对象列表传递给gsp,模型如下所示

model: [ houses: houses]

我想在jquery中设置每当houseId的输入值发生变化时,houseName的输入值将根据houseId更改为特定房屋的名称。以下是代码:

$( "#houseId" ).change(function() {
    $('#houseName').attr('value', '${houses[0].houseName}');
});`

如您所见,houses[0]中的'0'假设为houseId,但我不知道如何将houseId放入其中。有谁能请赐教?谢谢!

1 个答案:

答案 0 :(得分:0)

更好的方法是将houses列表作为JSON数组发送并使用JavaScript解析它。

在你的行动中:

import grails.converters.JSON
....
model: [ houses: houses as JSON]

所以你有这样的事情:

[  
   {  
      "id":1,
      "name":"House 1"
   },
   {  
      "id":2,
      "name":"House 2"
   }
]

在你的JS中:

var houses = JSON.parse(${houses});
$( "#houseId" ).change(function() {
    var index = $('#houseId').val();
    $('#houseName').attr('value', houses[index].name);
});