你能帮我解决一个Handlebars模板吗?

时间:2016-05-02 15:58:28

标签: javascript php templates handlebars.js

因此,我正在开发一个管理面板,以帮助工作人员管理我正在构建的Web应用程序的数据。我想使用Handlebars模板为数据库中的不同表构建不同的管理面板。但是,我甚至无法使用测试模板。我看过很多不同的教程(如果有帮助的话我会使用4.0.5)但是它不会填充那个div。当我测试它时,JSON数组和模板都会写到控制台,因此它们就在那里。还有其他我想念的东西吗?

HTML

<?php
  require 'GetJson.php';
?>

<body>
   <div id="nameList"></div>
   <script id="listOutNames" type="text/x-handlebars-template">
      <table class="table">
              {{#each NamesList}}
                      <tr>
                              <td>{{{Name}}}</td>
                      </tr>
              {{/each}}
      </table>
   </script>
   <script src='js/jQuery/jquery-2.2.1.min.js'></script>
   <script src='js/handlebars-v4.0.5.js'></script>
   <script src='js/EditNameList.js'></script>
</body>

JS

var source = $("#listOutNames").html();
var template = Handlebars.compile(source);
var data = <?php echo json_encode(array('NameList'=>$NamesList)) ?>;
$("#nameList").append(template(data));

PHP

<?php
require 'auth.php';

$link = mysqli_connect($hostname,$username,$password,$database,3306);

$query = "select Name from Names order by NameID";

$result = mysqli_query($link, $query) or die(Mysqli_error($link));

$NamesList = array();

while($row = mysqli_fetch_array($result)){
    $NamesList[] = array('Name' => $row['Name']);
}

mysqli_close($link);

?>

PHP脚本生成:

{"NamesList":[{"Name:":"Alice"},{"Name":"Bob"},{"Name":"Clark"}]}

1 个答案:

答案 0 :(得分:0)

以下是您的工作示例https://jsfiddle.net/yfr7v7so/

您必须在此行中为您的示例导入jQuery:

$("#listOutNames").html()

并尝试用JSON.Parse包装你的回声,如下所示:

var data = JSON.parse(<?php echo json_encode(array('NameList'=>$NamesList)) ?>);