У меня действительно возникают проблемы с конфликтами имен в моих шаблонах Mustache (используя Mustache.js). Этот пример иллюстрирует эти две проблемы:
Я передаю эти данные:
{'recs': {'code': 'foo', 'id': 1
'childRecs': [{'id': 2},
{'code': 'bar', 'id': 3}]
}
}
В этот шаблон:
{{#recs}}
Record ID: {{id}}
{{#childRecs}}
This child code is: [{{code}}] and its parent ID is: {{id}}
{{/childRecs}}
{{/recs}}
Ожидаемый:
Record ID: 1
This child code is: [] and its parent ID is 1
This child code is: [bar] and its parent ID is 1
Фактический:
Record ID: 1
This child code is [foo] and its parent ID is 2
This child code is [bar] and its parent ID is 3
Вложенный блок {{#childRecs}}
не может получить доступ к родительскому полю {{#recs}}{id}}{{/recs}}
- он перезаписывается {{#childRecs}}{{id}}{{/childRecs}}
Если переменная в {{#childRecs}}
отсутствует, и существует родительская переменная с тем же именем, нет способа помешать ей напечатать родительскую переменную.
Мои вложенные структуры очень глубокие, и существует много конфликтов имен, поэтому переименование их таким образом, чтобы они не сталкивались, не является приемлемым вариантом. Есть ли другой способ решить мои проблемы?