如何创建变量 moustache 变量?

How do I create a variable moustache variable?

提问人:Max 提问时间:8/26/2014 最后编辑:Max 更新时间:6/27/2019 访问量:2026

问:

以以下代码为例:

title: 'Hello',

该变量称为 title,值为 hello。我可以通过以下方式调用它

{{ title }}

并得到结果。但是,最近我需要创建一个变量。我不希望变量的名称是静态的,而是动态的。

var nameIWant = "blah";
...
nameIWant: 'Dynamics!',
...

如果我打电话给它,它不起作用,但是,打电话可以{{ blah }}{{ nameIWant }}

我该如何解决这个问题?可能吗?

节点 .js 变量 霍根 .js

评论

0赞 Jonathan Lonowski 8/26/2014
在许多 SO Q&A 中描述了对象文本中变量键的限制,例如 如何使用变量作为名称向 Javascript 对象添加属性? 以及 这个 Javascript 对象字面键限制是否严格由于解析?nameIWant: 'Dynamics!'
0赞 jdehesa 8/26/2014
这似乎......邪恶。模板的意义恰恰在于它们不会改变,但内容会改变。我相信你有一个很好的理由,但我的猜测是,要让它工作,可能需要为模板编写一个模板(一个元模板?),并做两次渲染以获得最终结果。确实是邪恶的。
0赞 Max 8/26/2014
github.com/twitter/hogan.js/issues/101我发现这个:(

答:

0赞 tadman 8/26/2014 #1

你不能像这样取消引用变量。小胡子故意非常简单,但事实并非如此。

您必须在源代码级别进行重新映射,因为模板引擎无法为您执行此操作。

评论

0赞 Max 8/26/2014
似乎做了很多工作。但是,我只是想知道,首先编译的是什么,小胡子还是 javascript?也许如果我要更改编译顺序,它可能会起作用
0赞 tadman 8/26/2014
你必须分叉 Moustache 并自己实现它,因为它不是核心功能。