在我的胡子模板中,我确实有类似的东西:
<div {{attr}}="{{attrVal}}"></div>
使用此渲染
Mustache.render(template, {attr : 'data-test', attrVal : 'test'})
生产
<div ="test"></div>
我希望得到类似的东西
<div data-test="test"></div>
是不是可以使用Mustache在标签内呈现属性名称?
UPDATE
我解决了这个问题。我在我的文档中的自定义<template>
标记内定义了我的HTML Mustache模板。例如:
<template id='myTemplate'>
<div {{dataAttr}}="{{dataAttrValue}}"></div>
</template>
当使用document.querySelector("#myTemplate").innerHTML
获取模板时,浏览器会将{{dataAttr}}
转换为{{dataattr}}
,因为属性不区分大小写。所以打电话
Mustache.render(
document.querySelector("#myTemplate").innerHTML,
{ dataAttr : 'data-attr', dataAttrValue : 'test'}
);
结果是
<div ="test"></div>
希望这段代码片段可以帮到你..
var template = document.querySelector("#template").innerHTML;
//Mustache.parse(template); // optional, speeds up future uses
var rendered = Mustache.render(template, {
attr: "data-test",
attrVal: "test"
});
document.querySelector("#target").innerHTML = rendered;
<script src="https://cdnjs.cloudflare.com/ajax/libs/mustache.js/2.2.1/mustache.js"></script>
<body>
<div id="target">Loading...</div>
<template id="template" >
<textarea style="width:300px">
<div {{attr}}="{{attrVal}}"></div>
</textarea>
</template>
</body>
我遇到同样的问题试试单[']:
<template id='myTemplate'>
<div {{dataAttr}}='{{dataAttrValue}}'></div>
</template>
.....