Javascript 如何在HTML中定义胡须片段?
这是我的html:Javascript 如何在HTML中定义胡须片段?,javascript,html,mustache,Javascript,Html,Mustache,这是我的html: <script type="text/html" id="ul-template"> <ul id="list"> {{> li-templ}} </ul> </script> <script type="text/html" id="ul-template2"> <div id="list2"> {{> li-templ}}
<script type="text/html" id="ul-template">
<ul id="list">
{{> li-templ}}
</ul>
</script>
<script type="text/html" id="ul-template2">
<div id="list2">
{{> li-templ}}
</div>
</script>
<script type="text/html" id="li-templ">
<p>{{ name }}</p>
</script>
{{>li temp}
{{>li temp}
{{name}}
如您所见,我希望重用#li temp
部分,但似乎我必须将其写入名为li temp.mustache
的文件中,然后我可以将其作为部分
?我可以在单个html文件中定义它们吗?我假设您使用的是JS风格的小胡子 在mustache.js中,partials对象可以作为第三个参数传递给mustache.render。对象应使用分部的名称设置关键帧,其值应为分部文本 您需要:
var view = {"name" : "You"},
li = $('#li-templ').html(),
partials = {"li-templ": li},
ul1 = Mustache.to_html($('#ul-template').html(), view, partials),
ul2 = Mustache.to_html($('#ul-template2').html(), view, partials);;
document.write(ul1, ul2);
这里有一个完整的工作流程-(ICH)可以帮助您完成这项工作
:使用Mustache.js进行客户端模板制作的简单/强大的方法
我发现将模板(在脚本标记中)与页面中的普通HTML混合在一起会扰乱我的代码编辑器(语法高亮显示、缩进等)。将它们作为单独的服务器加载可以保持HTML的整洁
每个文件签出一个模板
您还可以使用以下简单代码:
function getTemplates(url) {
$.get(url, function (response) {
$('template', response).each(function () {
ich.addTemplate(this.id, $(this).text());
});
});
}
或者,如果您希望ICH从页面中的URL自动加载它们:
<head>
<link rel="templates" type="text/html" href="my-templates.html">
</head>
在您的my templates.html
<templates>
<template id="ul-template">
<ul id="list">
{{> li-templ}}
</ul>
</template>
<template id="ul-template2">
<div id="list2">
{{> li-templ}}
</div>
</template>
<template id="li-templ">
<p>{{ name }}</p>
</template>
</templates>
{{>li temp}
{{>li temp}
{{name}}
您好,值得注意的是,Mustache.to_html
现在已被Mustache.render
(函数定义保持不变)是我还是谷歌机器人以这种方式嵌入模板中的链接?这可能是由于type=“text/html”条目造成的吗?使用诸如:type=“text/mustache template”之类的内容会产生什么后果?因为mustache来自github,所以不会再执行,因为MIME类型是text,是一个修改过的fiddle,以防有人想要引用。
<templates>
<template id="ul-template">
<ul id="list">
{{> li-templ}}
</ul>
</template>
<template id="ul-template2">
<div id="list2">
{{> li-templ}}
</div>
</template>
<template id="li-templ">
<p>{{ name }}</p>
</template>
</templates>