Mustache模板名称空间冲突/作用域

时间:2014-02-22 05:04:45

标签: javascript mustache

我在渲染胡子模板时遇到了可能称为命名空间冲突的问题。

基本上,属性“name”需要限定为模板遍历的数组,而不是前一个(父)数组。

显然,简单的解决方案是更改字段的名称,但我不想为看似错误的内容执行此操作。我错过了一些明显的东西吗?

在下面的小提琴中,如果members.name未定义,我们不应该看到在嵌套列表中呈现的“name”属性的列表项。相反,它正在渲染families.name,而它不应该。{/ p>

示例:http://jsfiddle.net/e3kMw/5/

<ul> {{#families}} <li>{{name}} <ul> {{#members}} {{#name}}<li>{{name}}</li>{{/name}} {{/members}} </ul> </li> {{/families}} </ul>

2 个答案:

答案 0 :(得分:2)

这更像是胡须/ javascript弱打字碰撞。 将值设置为空字符串而不是未定义

{"name": ""}

答案 1 :(得分:1)

当Mustache在当前范围内找不到请求的密钥时,会故意搜索祖先范围。不幸的是,除了改变你的模型之外,没有其他方法。

编辑:

您可以在This SO answer中找到相关的范围查找代码。