2015-11-09 44 views
0

我在HTML頁面中定義了鬍鬚部分。 (不是腳本或任何塊) 我的變量被替換,但parcial沒有。如果我登錄加載的模板,「>」將轉換爲「& gt;」 - 這是可以理解的。但是,我怎樣才能在我的HTML中指定partial包含,還是我的方法錯誤?在HTML和jQuery中使用部分命令的鬍鬚

$(function($) { 
 
    var template = $('#main').html(); 
 
    
 
    // > is converted to entity > 
 
    // var: {{ name }}<br>partial: {{&gt; partial }} 
 
    console.log(template); 
 
    
 
    var view = {name: 'Paul'}; 
 
    var partials = {partial: '<h1>!</h1>'}; 
 
    var html = Mustache.render(template, view, partials); 
 
    $('#main').html(html); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/mustache.js/2.2.0/mustache.js"></script> 
 
<div id="main"> 
 
    var: {{ name }} 
 
    <br> 
 
    partial: {{> partial }} 
 
</div>

這裏有一個小提琴:http://jsfiddle.net/f9df3txv/2/

謝謝你們!

回答

0

我做了一個解決方法,通過使用簡單的字符串替換來獲取「>」字符回到模板。

$(function($) { 
 
    var template = $('#main').html().replace(/{{&gt;/g, "{{>"); 
 
    var view = {name: 'Paul'}; 
 
    var partials = {partial: '<h1>!</h1>'}; 
 
    var html = Mustache.render(template, view, partials); 
 
    $('#main').html(html); 
 
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/mustache.js/2.2.0/mustache.js"></script> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="main"> 
 
    var: {{ name }} 
 
    <br> 
 
    partial: {{> partial }} 
 
</div>

0

嘗試使用var template = $('#main').text();而不是var template = $('#main').html()。希望有所幫助!

+0

現在,所有的HTML標籤都被刪除。所以這不適合我。 –