Как мне ссылаться на имя поля, которое содержит точку в шаблоне усов?

Как мне ссылаться на имя поля, которое содержит точку в шаблоне усов? Например, если у меня есть вид, как

{
  "foo.bar": "my value"
}

тогда как я могу поставить my value в шаблон? С помощью {{foo.bar}} не работает, потому что усы думают, что точка является частью пути, как будто должен быть "foo", у которого есть "полоса".

1 ответ

Вы не можете прочитать ключ с . в нем из усов. Спецификация Усов диктует, что . используется для разделения имен содержимого Усы предоставляют средства для выхода, но только для HTML-контента.

Усы спек: интерполяция

Вам нужно будет предварительно обработать ваши данные, чтобы использовать их в шаблоне Усы. Как вы это сделаете, будет зависеть от того, насколько широко распространена проблема.

Я нашел простой пример переназначения свойства в JavaScript, написанный Jon:

function rename(obj, oldName, newName) {
    if(!obj.hasOwnProperty(oldName)) {
        return false;
    }

    obj[newName] = obj[oldName];
    delete obj[oldName];
    return true;
}

Источник: переименовать ключи... в объекте

Другие вопросы по тегам