2014-03-13 70 views
3

我試圖查看是否可以使用ICanHazHandlebars構建我的Google文檔插件的側邊欄。然而,事實證明Caja從我的腳本標籤中剝離了實際的HTML。有什麼辦法可以防止這種情況發生?如何讓Caja在腳本標籤內保存模板文本?

讓我們只說我的車把模板會是這樣:

<script id="user" type="text/x-handlebars-template"> 
    <li> 
    <p class="name">Hello I'm {{ name }}</p> 
    </li> 
</script> 

然後目前,在運行時,它就是:

<script id="user-caja-guest-0___" data-caja-type="text/x-handlebars-template"></script> 

所以,即使我能看看它使用$('#user").html() ,它只會給我一個空的模板。有沒有辦法阻止Caja這樣做?

回答

2

Caja目前不支持在任何情況下保留<script>元素的內容,並且還假定所有腳本文本都是JavaScript。這將是可能的,但並不重要。如果您需要此功能,請致電file a request for it

2

這似乎適用於Handjaars.js與Caja。

模板標記(無腳本標籤+隱藏在div)

<div id="entry-template" class="header" style="display: none"> 
    <h1>{{title}}</h1> 
    <div class="body"> 
     {{body}} 
    </div> 
</div> 

然後你的腳本

var source = $("#entry-template").html(); 
var template = Handlebars.compile(source); 
var context = {title: "My New Post", body: "This is my first post!"}; 
alert(template(context)); 

而我們得到

<h1>My New Post</h1> 
<div class="body"> 
    This is my first post! 
</div> 
相關問題