2016-09-20 7 views
1

Привет, я пытаюсь создать шаблон jquery с ajax json, я получаю данные с сервера, но когда я передаю объекты в шаблон, его показ Не удается прочитать свойство «push» неопределенной ошибки [Изображение на скриншоте с ошибкой] [1]jquery template show Невозможно прочитать свойство 'push' of undefined

Я провел некоторое исследование об этом, но не смог получить результат. Попросите всех вас помочь мне с этим.

Сценарий шаблон

<ul class="entrylist" id="show_application_list"> 
<script type="text/x-jquery-tmpl" id="show_application_list_template" > 
<li class="even"> 
<div class="entry_wrap"> 
<div class="entry_content2"> 
    <h4><a id='${jobid}' class='view_job_details'>${position}</a></h4> 
    <big><strong>Applied On:</strong> ${applied_date}</big> 
    <big><strong>Status:</strong> 

    {{if scheduled_date}} 
    <button id="" class="stdbtn btn_lime show_application_details">Shortlisted</button> 
    {{else}} 
    <p><big><strong>Under Review</strong></big></p> 
    {{/if}} 
</div> 
<br> 
<div class="entry_content2 show_application_details_content" style="display:none"> 

    <form class="stdform stdform2" method="post" action="#"> 
    <p> 
     <label>Interview On</label> 
     <span class="field"> 
     {{if scheduled_date}} 
     ${scheduled_date} 
     {{else}} 
     <p><big><strong>Under Review</strong></big></p> 
     {{/if}} 
     </span> 
    </p> 

    {{if interview_response}} 
     <p> 
     <label>Interview Response</label> 
     <span class="field">${interview_response}</span> 
     </p> 
     <p> 
     <label>Interview Status</label> 
     <span class="field">${interview_status}</span> 
     </p> 
     <p> 
     <label>Interview Experience<small>Grade your experience out of 5 <small></label> 
     <span class="field"><input type="number" min="0" max="5" name="lastname" id="lastname2" class="longinput"></span> 
     </p> 
     <p> 
     <label>Comment</label> 
     <span class="field"><textarea name="lastname" id="lastname2" class="longinput"></textarea></span> 
     </p> 
     <p class="stdformbutton"> 
     <button id="${interview_id}" type="button" class="stdbtn btn_lime update_interview_experience">Update Feedback</button> 
     </p> 
    {{/if}} 

    </form> 
</div> 
</div> 
</li> 
</script>    
</ul> 

Javascipt Код

function show_application_employees(){ 
    $("#applicationlabel").hide(); 
    $.ajax({ 
     type:"post", 
     url:'functions/functions.php?activity=getapplicationemployees', 
     success:function(data) 
     { 

      var obj = $.parseJSON(data); 
      console.log(obj) 
      if(obj.length == 0){ 
       $("#applicationlabel").show(); 
      }else{ 
       $("#applicationlabel").hide(); 
       $("#show_application_list").find(".even").remove(); 
       $("#show_application_list_template").tmpl(obj).appendTo("#show_application_list"); 
       $(".view_job_details").on("click",show_job_details); 
       $(".show_application_details").on("click",show_application_details); 
      } 
     } 
    }); 

} 

Некоторые еще scrren выстрелы мой код не в этих точках: error in jquery

error in jquery template js.

+0

какой console.log (obj) показать? –

+0

Из вашего кода я могу только предположить, что вы возвращаете массив элементов в json, а затем прямо пытаетесь отобразить его в своем шаблоне, тогда как ваш шаблон обрабатывает рендеринг отдельных элементов внутри массива. Либо попробуйте сделать один элемент из obj, то есть obj [0], либо поместите для каждого в свой шаблон. – klikas

ответ

0

Я не знаю точного ответа, но отладка в браузере так же хороша, как и получается. Ниже вы можете увидеть консоль разработчика браузера. На вкладке Sources:

  1. Активировать кнопку Pause on exceptions.
  2. Повторите свою страницу, и когда вы попадаете в исключение, где выбрасывается ваша ошибка (Cannot read property 'push'). Посмотрите на стек вызовов, чтобы найти, где ваш код не работает.

Или поставить точку останова в функцию успеха и посмотреть, как далеко вы сможете пройти через свой код.

Проблема, безусловно, в вашем коде, вам нужно немного указать ее. Опубликуйте обновление после того, как вы обнаружите, где именно ваш код выходит из строя.

enter image description here