2013-02-11 19 views
0

我有一个简单的例子,有把手,我无法使它工作!请帮忙。我试图让谷歌应用程序引擎的留言与车把代替Jinja2的无法获得简单的把手样品

HTML /模板代码的工作如下:

Hello {{user.nickname}} 
    <h2>Top 10 Most Recent Guestbook Entries</h2> 
     {{#each greetings}} 
      <br> 
      <small>[<i>{{date.ctime}}</i>]</small> 
      <b> 
      {{#if author}} 
       <code>{{author.nickname}}</code> 
      {{else}} 
       <i>anonymous</i> 
      {{/if}} 
      </b> 
      wrote: 
     {{comment}} 
     {{/each}} 
</script> 
<div id="comment_content"> </div> 
<form id="comments" action=""> 
    <div><textarea id="comment" name="content" rows="3" cols="60"></textarea></div> 
    <div><input id="comment_button" type="button" value="submit"></div> 
</form> 
<a href="{{ url }}">{{ url_linktext }}</a> 

这里是JS代码:

<script> 
    $(document).ready(function() { 
     var source = $("#entry-template"); 
     var srcHTML =source.html();  
     var template = Handlebars.compile(srcHTML); 
    // put all your jQuery goodness in here. 
     $("#comment_button").click(function(event) { 

      var data = JSON.stringify({ 
      "login": "/_ah/login?continue=http%3A//localhost%3A8080/show", 
      "logout": "/_ah/login?continue=http%3A//localhost%3A8080/show&action=Logout", 
      "user": { 
       "nickname": "dummy", 
       "email": "[email protected]" 
      }, 
      "greetings": [ 
      { 
      "comment": "COMMENT1", 
      "date": { 
       "ctime": "Sun Feb 10 23:20:21 2013" 
      }, 
      "author": { 
       "nickname": "dummy", 
       "email": "[email protected]" 
      } 
      } 
     ] 
     }) 
     var html = template(data); 
     console.log(html); 
     $("#comment_content").html(html); 
     }); 
    }); 
</script> 

这里是我如何引用ncing车把源

Can someone please help? 

感谢密尔

回答

0

你的大问题是,你正在使用JSON.stringify准备您的数据编译模板函数:

var data = JSON.stringify({ ... }); 
var html = template(data); 

这会当它只需要对象时,最终会向template函数传递一个字符串(它是您想要的数据的JSON表示)。放下JSON.stringify,事情将开始表现更好:

var data = { ... }; 
var html = template(data); 

演示:http://jsfiddle.net/ambiguous/Axmbd/

而且,你的HTML的这一部分:

<a href="{{ url }}">{{ url_linktext }}</a> 

没有出现在里面模板的<script>所以{{url}}{{url_linktext}}将不会填写。您可以通过将该<a>移到正确的位置来解决该问题。

+0

非常感谢您的指点。非常感激。有用... – user1570124 2013-02-12 02:45:13