在 HTML & jQuery 中使用部分命令的小胡子
Mustache using Partial Command in HTML & jQuery
我在 HTML 页面中定义了一个小胡子部分。 (不是脚本或任何块)
我的变量被替换了,但 parcial 没有。如果我记录加载的模板,“>”将转换为“>” ——这是可以理解的。但是我如何在我的 HTML 中指定部分包含,或者我的方法是错误的?
$(function($) {
var template = $('#main').html();
// > is converted to entity >
// var: {{ name }}<br>partial: {{> 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>
这里是 fiddle:http://jsfiddle.net/f9df3txv/2/
谢谢大家!
尝试使用 var template = $('#main').text();
而不是 var template = $('#main').html()
。希望对您有所帮助!
我做了一个解决方法,通过使用简单的字符串替换将“>”字符返回到模板。
$(function($) {
var template = $('#main').html().replace(/{{>/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>
我在 HTML 页面中定义了一个小胡子部分。 (不是脚本或任何块) 我的变量被替换了,但 parcial 没有。如果我记录加载的模板,“>”将转换为“>” ——这是可以理解的。但是我如何在我的 HTML 中指定部分包含,或者我的方法是错误的?
$(function($) {
var template = $('#main').html();
// > is converted to entity >
// var: {{ name }}<br>partial: {{> 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>
这里是 fiddle:http://jsfiddle.net/f9df3txv/2/
谢谢大家!
尝试使用 var template = $('#main').text();
而不是 var template = $('#main').html()
。希望对您有所帮助!
我做了一个解决方法,通过使用简单的字符串替换将“>”字符返回到模板。
$(function($) {
var template = $('#main').html().replace(/{{>/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>