2016-05-04 4 views
0

Привет Я делаю HTTP GET звоните в MVC контроллер действий, который возвращает JSON, как показано ниже:руль не заселять шаблон правильно для ответа JSON

[ 
    { 
     "PlanCode": "P001 ", 
     "PlanName": "Plan1 " 
    }, 
    { 
     "PlanCode": "P002$ ", 
     "PlanName": "Plan2$ " 
    }, 
    { 
     "PlanCode": "P003$ ", 
     "PlanName": "Plan3$ " 
    }, 
    { 
     "PlanCode": "P004$ ", 
     "PlanName": "Plan4$ " 
    }, 
    { 
     "PlanCode": "P005$ ", 
     "PlanName": "Plan5$ " 
    }, 
    { 
     "PlanCode": "P006$ ", 
     "PlanName": "Plan6$ " 
    }, 
    { 
     "PlanCode": "P007$ ", 
     "PlanName": "Plan7$ " 
    }, 
    { 
     "PlanCode": "P007$ ", 
     "PlanName": "Plan7$ " 
    }, 
    { 
     "PlanCode": "P008$ ", 
     "PlanName": "Plan8$ " 
    }, 
    { 
     "PlanCode": "P009$ ", 
     "PlanName": "Plan9$ " 
    } 
] 

Использование кода handlbar, как показано ниже:

var PLAN_METHOD = { 

    handlerData: function (planJSON) { 

     var templateSource = $("#plan-template").html(); 

     template = Handlebars.compile(templateSource); 

      var context = planJSON; 
      plansHTML = template({planJSON:context}); 


     $('#plans-div').html(plansHTML); 

    }, 
    loadPlansData: function() { 

     $.get("http://localhost:41801/plan/getplans",null,this.handlerData) 

    } 
}; 

$(document).ready(function() { 

    PLAN_METHOD.loadPlansData(); 
}); 

шаблон HTML как указано ниже:

<div id="plans-div" > 
</div> 

<script id="plan-template" type="text/x-handlebars-template"> 
    <table > 
     <thead> 
      <tr> 
       <th>Plan Code</th> 
       <th>Plan Name</th> 

      </tr> 
     </thead> 
     <tbody> 
      {{#each Plans}} 
      <tr> 
       <td>{{this.PlanCode}}</td> 
       <td>{{this.PlanName}}</td> 
      </tr> 
      {{/each}} 
     </tbody> 
    </table> 
</script> 

Каким-то образом «планыHTML» в руле javascript-код не получает popu с номерами строк JSON. Пожалуйста, помогите

+0

где 'plan-div' в вашем html? это должен быть идентификатор. – alsafoo

+0

извините, как-то не добавили выше планов-div html. Он выглядит следующим образом:

, но все же Каким-то образом «plansHTML» в дескрипторе javascript не заполняется строками данных JSON. – Pam

+0

вы можете обновить свой вопрос, включив в него 'plan-div' – alsafoo

ответ

0

Ваш шаблон предназначен для поиска по параметру: Plans данных. Но ваши данные не имеют свойства Plans. Решение состоит в том, чтобы использовать правильное имя свойства в вашем объекте данных шаблона:

plansHTML = template({ Plans: context }); 
Смежные вопросы