Шаблон JQuery не отображается из данных AJAX - PullRequest
0 голосов
/ 29 января 2012

Приведенный ниже код работает, если я жестко закодировал строку json, однако, если я передал строку json, возвращенную из вызова ajax, для рендеринга шаблона, он не работает. Пожалуйста, помогите мне найти проблему.

   function getData(orgId){

   $.template("EmployeeTemplate","<tr><td colspan='2'>${name}</td> 
    <td colspan='2'>${id}</td> <td colspan='2'>${jobTitle}</td></tr>");

    var gUrl = "/JQueryMobileApp/HRServlet?action=employee&orgId="+orgId;

    // Do the ajax call 
    $.ajax({ 
      url: gUrl, 
      dataType:'json',
      // Callback (onsuccess) 
      success: function(d){ 

       var jsonData = eval( d); 

       var nameText=jsonData.empNames;
       //nameText=[{name:"abc",id:"1"},{name:"pqr",id:"2"}];
       $.tmpl( "EmployeeTemplate", nameText ).appendTo( "#employeeList" );
      alert(nameText);

      }, 
      // Error handler 
      error: function(req, status, err){ 
        alert('error getting name');
        var group_list = document.getElementById("orgTree"); 

      } 
    }); 
     }

код на стороне сервера:

                PrintWriter out = response.getWriter(); 
        response.setContentType("application/json");
        JSONObject obj1=new JSONObject();
       if(request.getParameter("action").equals("employee")){

            String orgId=request.getParameter("orgId");

        List<EmployeeVO> name=access.getEmployeeListInOrganization(orgId);

        Gson gson = new Gson();
        String json=gson.toJson(name);
        obj1.put("empNames",json);


        out.print(obj1); 
        out.flush();
                   }

Я использую тот же подход, чтобы заполнить текстовое поле с именем сотрудника, возвращенного из вызова ajax, и я вижу, что оно заполняется. Однако, если тип возвращаемого значения - массив json, я не могу его отобразить. Логика отображения верна, как если бы я жестко закодировал массив json и смог увидеть список и таблицу Код ответа успешен, логика не переходит в состояние ошибки.

1 Ответ

0 голосов
/ 29 января 2012

решил вышеуказанную проблему с помощью var obj = jQuery.parseJSON (nameTex);

...