2014-10-18 50 views
2

我下載把手從GitHub如何使用車把

渲染HTML,它包含在源folder.As handlebars.js和plugin.js說明文檔中告知使用的渲染功能,從獲取模板的方式文件是如下:

$.handlebars({ 
templatePath: 'path/to/templates', 
templateExtension: 'hbs' 
}); 

// now this will fetch <path/to/templates/content.hbs> 
$('#some-element').render('content', { 
// ... 
}); 

,什麼我沒有做使用它是:

<script type="text/javascript" src="js/jquery.js"></script> 
<script src="js/handlebars.js" type="text/javascript"></script> 
<script src="js/plugin.js" type="text/javascript"></script> 
$.handlebars({ 
    templatePath: 'lib/assets', 
    templateExtension: 'html' 
}); 
var data = {"username":uname}; 
$('.container').render('lockscreen', data); 

的lib /資產/ lockscreen.html包含這樣的代碼:

<div class="center"> 
       <div class="headline text-center" id="time"></div> 
       <div class="lockscreen-name" style="font-weight:600;font-size:16px;"><b>{{username}}</b></div> 
       <div class="lockscreen-item"> 
        <div class="lockscreen-image"><img src="images/avatar5.png" alt="user image"/></div> 
        <div class="lockscreen-credentials"> 
         <div class="input-group"> 
          <input type="password" class="form-control" placeholder="password" id="pa_asd"/> 
          <div class="input-group-btn"> 
           <button class="btn btn-flat"><i class="fa fa-arrow-right text-muted"></i></button> 
          </div> 
         </div> 
        </div> 
       </div> 
       <div class="lockscreen-link"><a href="login.html">Or sign in as a different user</a></div> 
      </div> 

我仍然不能得到它done.I嘗試使用它otherway ...使用創造了一個靜態函數由koorchik

function render(tmpl_name, tmpl_data) { 
    if (!render.tmpl_cache) { 
     render.tmpl_cache = {}; 
    } 

    if (! render.tmpl_cache[tmpl_name]) { 
     var tmpl_dir = '/lib/assets'; 
     var tmpl_url = tmpl_dir + '/' + tmpl_name + '.html'; 

     var tmpl_string; 
     $.ajax({ 
      url: tmpl_url, 
      method: 'GET', 
      async: false, 
      dataType: 'html', 
      success: function(data) { 
       tmpl_string = data; 
      } 
     }); 

     render.tmpl_cache[tmpl_name] = _.template(tmpl_string); 
    } 

    return render.tmpl_cache[tmpl_name](tmpl_data); 
} 
var rendered_html = render('lockscreen', data); 

但得到了某種錯誤的像

_ is undefined

任何人都可以幫助我嗎?

回答

0

這是因爲您的代碼使用underscore.js,這是一個外部實用程序庫,而_.template()實際上是該庫中的一個函數。你的代碼沒有找到它,因爲你沒有包含underscore.js腳本。

這裏是最新版本縮小的的underscore.js鏈接:

<script src="http://underscorejs.org/underscore-min.js"></script> 
<script type="text/javascript" src="js/jquery.js"></script> 
<script src="js/handlebars.js" type="text/javascript"></script> 
<script src="js/plugin.js" type="text/javascript"></script> 
+0

有關的其他方式是什麼'$ .render:加載你的資源,如在此之前http://underscorejs.org/underscore-min.js

你應該包括它'功能我應該怎麼做才能使它工作? – 2014-10-18 07:50:02

+0

@BibashAdhikari我不知道,對不起。 Idk該功能的目的是什麼 – 2014-10-18 07:58:05

+0

仍然我得到錯誤TypeError:無法讀取Function.h.template(file:/// C:/ Users/Humlal/Downloads/Compressed /未定義 \t屬性'替換' node-webkit-v0.10.5-win-ia32/lib/js/underscore.js:5:13996) \t at render(file:/// C:/ Users/Humlal/Downloads/Compressed/node-webkit-v0 .10.5-win-ia32/lib/index.html:138:36)'類似這樣的東西 – 2014-10-18 07:58:16