2017-03-05 70 views
0

我正在關注教程https://www.youtube.com/watch?v=3zVYH16yogQ&t=58s有關在句柄模板中呈現數據的問題,但似乎無法將數據傳遞到模板。無法將數據傳遞到句柄模板

我global.js文件:

$(document).ready(function(){ 



var source = $("#first-template").html(); 
var template = Handlebars.compile(source); 


var context = { 
    title1 : "hello", 
    body1 : "body1" 
} 

var el_html = template(context); 

$("#render_here").html(el_html); 
$("#render_here_again").html(el_html); 


}); 

我的視圖文件:

<html> 
<head> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> 
    <link href="http://fontawesome.io/assets/font-awesome/css/font-awesome.css" rel="stylesheet" media="screen"> 
    <script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js"></script> 

    <script type="text/javascript" src="../javascripts/global.js"> </script> 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/2.0.0/handlebars.js"></script> 


</head> 
<body> 
    <button name = "click" id ="click" >click </button> 
<div id ="render_here"> 
    first 
</div> 

<div id ="render_here_again"> 
    second 
</div> 

<script id = "first-template" type="text/x-handlebars-template"> 
      <div> 
       <h1 style ="color:green">{{title1}}</h1> 
       <h2 style ="color:blue">{{body1}}</h2> 
     </div> 
</script> 
</body> 
</html> 

渲染從上下文變量的數據應該被加載頁面時,但它是空白。當我登錄到控制檯時,可以看到對象,而當我console.log(el_html)腳本模板出現時,卻沒有上下文。任何想法我做錯了什麼?

回答

0

這對我有用。下面是代碼 - 我所做的唯一真正的變化是把global.js內聯和jQuery的版本現代化:

<!DOCTYPE html> 
 
<html> 
 
<head> 
 
    <title>Page Title</title> 
 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
 
    <script> 
 
     $(document).ready(function(){ 
 

 
      var source = $("#first-template").html(); 
 
      var template = Handlebars.compile(source); 
 

 
      var context = { 
 
       title1 : "hello", 
 
       body1 : "body1" 
 
      }; 
 

 
      var el_html = template(context); 
 

 
      $("#render_here").html(el_html); 
 
      $("#render_here_again").html(el_html); 
 

 
     }); 
 
    </script> 
 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/2.0.0/handlebars.js"></script> 
 
</head> 
 
<body> 
 

 
<button name = "click" id ="click" >click </button> 
 
<div id ="render_here"> 
 
    first 
 
</div> 
 

 
<div id ="render_here_again"> 
 
    second 
 
</div> 
 

 
<script id = "first-template" type="text/x-handlebars-template"> 
 
    <div> 
 
     <h1 style ="color:green">{{title1}}</h1> 
 
     <h2 style ="color:blue">{{body1}}</h2> 
 
    </div> 
 
</script> 
 

 
</body> 
 
</html>

而且,你使用jQuery的古代版。我會轉向更近的東西 - 至少2.x.沒有理由再使用v1.x。

+0

由於某種原因,我的頁面仍然空白,這是一個很長的畫面,但是您是否知道可能會干擾它的其他任何內容?我正在使用node.js mongodb express和句柄 – user

+0

因此,當你在你的環境中運行我的代碼時,你會得到一個空白頁面? – rasmeister

+0

是的它是完全空白的除了按鈕..我無法弄清楚,但我可以捕獲上下文,如果我把它登錄到控制檯之前,我呈現它..其後,我呈現的頁面上下文似乎迷路了某處 – user

相關問題