簡體   English   中英

handlebars.js不呈現文檔

[英]handlebars.js doesnt render document

我在handlebars.js中遇到了問題。 也許這完全是微不足道的,但是我在車把上也是全新的。 所以...這是我的index.html中的示例代碼,如下所示:

    <!DOCTYPE html>

    <!--[if lt IE 7]>      <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
    <!--[if IE 7]>         <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
    <!--[if IE 8]>         <html class="no-js lt-ie9"> <![endif]-->
    <!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->
        <head>

            <meta charset="utf-8">
            <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
            <title></title>

            <meta name="description" content="">
            <meta name="viewport" content="width=device-width">
            <script data-main="scripts/main" src="scripts/require.js"></script>
            <!-- Place favicon.ico and apple-touch-icon.png in the root directory -->

            <link rel="stylesheet" href="css/normalize.css">
            <link rel="stylesheet" href="css/main.css">
            <script src="scripts/modernizr-2.6.2.min.js"></script>


            <script src='scripts/content.js'></script>
            <script src='scripts/handlebars-1.0.0-rc.4.js'></script>
            <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
            <script>window.jQuery || document.write('<script src="scripts/jquery-1.9.1.min.js"><\/script>')</script>
            <script src="scripts/plugins.js"></script>
            <script src="scripts/main.js"></script>


        </head>

        <body>

            <!--[if lt IE 7]>
                <p class="chromeframe">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> or <a href="http://www.google.com/chromeframe/?redirect=true">activate Google Chrome Frame</a> to improve your experience.</p>
            <![endif]-->

            <!-- Add your site or application content here -->

<script id="some-template" type="text/x-handlebars-template">
      <table>
        <thead>
          <th>Username</th>
          <th>Real Name</th>
          <th>Email</th>
        </thead>
        <tbody>
          {{#users}}
            <tr>
              <td>{{username}}</td>
              <td>{{firstName}} {{lastName}}</td>
              <td>{{email}}</td>
            </tr>
          {{/users}}
        </tbody>
      </table>
    </script>


        </body>
    </html>

還有這個content.js文件,其中包含簡單的javascript代碼,但仍然無法正常工作。 如果您能提出建議或提出解決方案,我將非常感激。 先感謝您

 var source   = $("#some-template").html();
  var template = Handlebars.compile(source);
  var data = { users: [
      {username: "alan", firstName: "Alan", lastName: "Johnson", email: "alan@test.com" },
      {username: "allison", firstName: "Allison", lastName: "House", email: "allison@test.com" },
      {username: "ryan", firstName: "Ryan", lastName: "Carson", email: "ryan@test.com" }
    ]};
  $("#content-placeholder").html(template(data));

最好的祝福

除非您創建了一個名為“ users”的自定義塊幫助器迭代器,否則以下塊將不會執行,這就是為什么當您嘗試渲染模板時看不到任何東西的原因。

不正確的塊幫助器迭代器:

{{#users}}
   ...
{{/users}}

根據示例中提供的數據,您應該執行以下操作:

正確的塊幫助器迭代器:

{{#each user}}
   My name is {{this.firstname}} {{this.lastname}} and my email is {{this.email}}.
{{/each}}

您可以在Handlebarsjs文檔站點上引用塊幫助器。 剛開始消化可能會有些挑戰,但是經過一些嘗試,您將開始學習Handlebarsjs的一些功能。

  1. 導入jQuery 之前,您要導入“ content.js”腳本。

  2. 該腳本中的代碼應包裝在jQuery“就緒”處理程序中:

      $(function() { var source = $("#some-template").html(); var template = Handlebars.compile(source); var data = { users: [ {username: "alan", firstName: "Alan", lastName: "Johnson", email: "alan@test.com" }, {username: "allison", firstName: "Allison", lastName: "House", email: "allison@test.com" }, {username: "ryan", firstName: "Ryan", lastName: "Carson", email: "ryan@test.com" } ]}; $("#content-placeholder").html(template(data)); }); 

第一個問題將導致錯誤記錄在瀏覽器的控制台中。 這是您應該始終首先檢查的內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM