在DustJS中将Variable添加到Context中,还是定义局部变量?

时间:2013-07-16 07:06:03

标签: javascript dust.js

在我的dustJS模板中,我使用变量的组合将其用作新变量。 例如,假设我有pnamecname,那么我想创建name = pname + cname。 另外..我可能想根据特定条件创建局部变量,例如name = {?.rep} pname {:else} pname + name {/.rep}。我可能想将这些变量传递给帮手。

要坚持DRY原则,最好的选择是创建local,以便稍后再次出现时可以引用此局部变量。

我尝试了部分内容,例如:{<name}pname + cname{/name},稍后将其用作{+name/}。但这种方式不适用于助手,也不适用于条件块。

我认为一种可能的解决方案可能是......使用助手将变量添加到当前上下文中,但我不知道该怎么做。

所以我的问题是:如何将变量添加到当前上下文中,或者如何动态定义局部变量?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

来自dust-motes repo的@provide帮助应该可以帮助您解决此问题。

如果出于某些原因@provide helper不适合你,请查看dustjs-helpers repo中建议的@addToContext帮助器。@ addToContext helper修改上下文,所以如果你不小心它可能会覆盖上下文具有相同键的数据。 @provide helper比@addToContext更受欢迎。