我正在制作一个模板助手,它将内联 SVG 图标插入到我的模板中。我想传递一个参数来添加一个额外的 CSS 类(它将用于更改默认大小、颜色等)。
我的期望
<button>
<svg viewBox="0 0 78 73" class="svg-icon svgWhite" version="1.1" ...>
<polygon id="icon-star" points="39 ... 60">
</polygon>
</svg>
</button>
我得到什么
<button>
"[object Object]"
<svg viewBox="0 0 78 73" class="svg-icon" version="1.1" ...>
<polygon id="icon-star" points="39 ... 60">
</polygon>
<!--[object Object]-->
</svg>
</button>
我的模板
<template name="whatever">
<button>{{{icon.star svgWhite}}}</button>
</template>
我的模板助手
Template.registerHelper('icon', {
star: function (userClass, userWrapper) {
var wrapper = (userWrapper == undefined) ? "i" : userWrapper;
var addlClass = (userClass == undefined) ? "" : ", " + userClass;
var svgWidth = 78;
var svgHeight = 73;
var svgCode = '<polygon id="icon-star" points="39 .... 60"></polygon>';
var icon = '<'+wrapper+'>' +
'<svg viewBox="0 0 ' + svgWidth + ' ' + svgHeight + '" ' +
'class="svg-icon' + addlClass + '" ' +
svgConfig + '>' + svgCode + '</' + wrapper + '>';
return icon
}
});
参考:https ://github.com/meteor/meteor/tree/devel/packages/spacebars#helper-arguments