使用 Google 闭包将 json 响应内容作为链接添加到对话框中
Add json response content to a dialog box as links using google closure
我正在正确获取从servlet发送的json内容,但是当我尝试使用for循环在对话框中设置它时,我无法做到,只有最后一个元素正在更新。我可以通过指定我不想的每个元素来手动设置它。
我的 js 文件
goog.events.listen(request, "complete", function(e){
var xhr = /** @type {goog.net.XhrIo} */ (e.target);
res = xhr.getResponseJson();
var dialog1 = new goog.ui.Dialog(null, true);
var mycount = count(res);
for(var m=0;m<mycount;m++)
{
dialog1.setContent("<a id='user' href='#'>"+res[m].user+
"</a><br>");
}
/*
dialog1.setContent(
"<a id='user1' href='#'>"+res[0].user+"</a><br><a id='user2' href='#'>"
+res[1].user+"</a><br><a id='user3' href='#'>"
+res[2].user+"</a><br><a id='user4' href='#'>"
+res[3].user+"</a><br><a id='user5' href='#'>"
+res[4].user+"</a><br><a id='user6' href='#'>"+res[5].user+"</a>");
*/ //What I was using previously and want to get rid of it
dialog1.setTitle('User Switch');
dialog1.setVisible(true);
dialog1.getButtonSet(false);
for(var i=1;i<mycount+1;i++){
goog.events.listen((goog.dom.getElement('user'+i)), goog.events.EventType.CLICK,
function(e) {
myval = (goog.dom.getElement(e.target).innerHTML);
goog.dom.setTextContent(goog.dom.getElement('update'),myval);
dialog1.dispose();
});
}
Json sent from my servlet
PrintWriter out = resp.getWriter();
JSONArray json = new JSONArray();
JSONObject userdet1 = new JSONObject();
JSONObject userdet2 = new JSONObject();
JSONObject userdet3 = new JSONObject();
JSONObject userdet4= new JSONObject();
JSONObject userdet5= new JSONObject();
JSONObject userdet6= new JSONObject();
userdet1.put( "user", "arjun1.daglur1@mesi.com");
userdet2.put( "user", "arjun2.daglur2@mesi.com");
userdet3.put( "user", "arjun3.daglur3@mesi.com");
userdet4.put( "user", "arjun4.daglur4@mesi.com");
userdet5.put( "user", "arjun5.daglur5@mesi.com");
userdet6.put( "user", "arjun6.daglur6@mesi.com");
json.add(userdet1);
json.add(userdet2);
json.add(userdet3);
json.add(userdet4);
json.add(userdet5);
json.add(userdet6);
out.print(json);
out.close();
终于想通了!
var content = new Array();
for(var k=0;k<mycount;k++)
{
content[k] = ("<a href='#' id=user"+k+">"+res[k].user+"</a><br>");
}
dialog1.setContent(content.join(""));
相关文章:
- 正在链接添加了以下内容::在之后
- 将超链接添加到“;标题“;标记文本
- 将重定向URL链接添加到JS函数
- 如何将超链接添加到通过传单创建的传单多段线.Draw
- 将数据库中的超链接添加到查询结果
- jQuery regex从文本链接-添加不需要的域到链接
- 将href链接添加到通过js鼠标悬停显示的图像
- 三.js - 自 r69 以来如何链接/添加相机灯
- 如何向超链接添加变量值
- 使用JavaScript向链接添加参数
- 知道点击了什么链接添加到数据库中
- 向asp.net生成的链接添加确认javascript
- 使用AJAX将AJAX链接添加到页面Yii
- 如何仅为特定URL向超链接添加属性
- 如何在javascript中将下一个和上一个链接添加到当前滑块
- 如何通过Jquery点击链接添加输入
- 将带有单击事件的超链接添加到 Dojo 网格
- OpenCart - 通过链接添加产品
- 使浏览器为我的链接添加书签
- 使用 JavaScript 向一组链接中的第一个链接添加一个属性