2012-09-26 16 views

回答

4

好,大量的研究後,因爲它不是在文件寫的,我發現如何做到這一點。 訣竅是你必須先註冊你的模板和一個id。 如果您使用腳本標記或url來查找模板,則此步驟由canJS自動完成。

所以,如果你想呈現模板,存儲在一個變量,你必須做這樣的事情:

var template = "<h1><%= title %> </h1 >"; 
can.view.ejs('my-view-id', template);​​​​​​​ 
var rendered = can.view.render('my-view-id', data); 

現在,你必須在rendered文檔片段。

1

看看jQuery的utils的字符串格式plugin。有一個例子顯示了模板的呈現html,它被定義爲字符串。

創建模板:

$.tpl('tweet', [ 
    '<div id="tweet-{id:s}" class="tweet">', 
     '<div class="tweet-body"><b>@{from:s}</b>: {body:s}', 
      '(<a href="{href:s}" class="tweet-date">', 
       '<abbr title="{timestamp:s}">{timesince:s}</abbr>', 
      '</a>)', 
     '</div>', 
    '</div>' 
]); 

渲染:

$.getJSON('/tweets/username/', function(resp, s){ 
    $.each(resp.tweets, function(idx, tweet) { 
     $.tpl('tweet', { 
      id: tweet.id, 
      body: tweet.body, 
      from: tweet.screen_name, 
      timestamp: tweet.pub_time, 
      timesince: $.timeago(tweet.pub_time) 
     }).appendTo('#tweet-list'); 
    }); 
}); 
+0

+1因爲這可能是一個很好的替代解決方案,但我想使用EJS模板,並使用canjs呈現它們。謝謝! –

相關問題