gpt4 book ai didi

推断使用的变量和依赖项的 Javascript 模板库

转载 作者:行者123 更新时间:2023-11-29 15:02:31 25 4
gpt4 key购买 nike

是否有一个 Javascript 模板库可以自动推断模板中使用的变量以及它们之间可能的依赖关系?例如,如果我有一个看起来像这样的模板(Handlebars 语法):

<script id="entry-template" type="text/x-handlebars-template">
<div class="entry">
<h1>{{title}}</h1>
<div class="body">
{{body}}
</div>
</div>
</script>

我希望能够做这样的事情:

var source   = $("#entry-template").html();
var template = Handlebars.compile(source);
template.vars() => {title: "", body: ""}

我想要这个功能的原因是我希望能够生成一个表单,其中的字段反射(reflect)了完成模板所需的变量。

最佳答案

此代码段(在 http://jsfiddle.net/CfaAW/2/ 编辑)使用正则表达式查找简单的 {{var}} 语法,还将查找 . 来处理 Handlebars 路径.

function extractObjectFromTemplate(source) {
var handlebarsRegex = /\{\{([\s\S]+?)\}\}/g;
var varObject = {};
var varArray, ns, o, i, len;
while ((varArray = handlebarsRegex.exec(source)) !== null) {
ns = varArray[1].split('.');
o = varObject;
for (i = 0, len = ns.length; i < len; i++) {
o = o[ns[i]] = o[ns[i]] || (i == len - 1 ? "" : {});
}
}

return varObject;
}

在您的模板上,JSON.stringify(extractObjectFromTemplate(source)) 为您提供:

{"title":"","body":""}

并在模板中使用 Handlebars Paths

<h1>{{title.h1}}</h1>
<h2>{{title.h2}}</h2>
<div class="body">
{{body}}
</div>

你会得到嵌套的属性

{"title":{"h1":"","h2":""},"body":""}

关于推断使用的变量和依赖项的 Javascript 模板库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7939956/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com