2016-07-19 1 views
0

Я не уверен, что я делаю что-то неправильно, но у меня есть «даты» в качестве ключа для объекта, и Dust, кажется, просто выводит именно то, что я вкладываю, а не оцениваю правильно ,Dust JS Dot Into string Ключевое слово

{#.weeks pos=items} 
    {pos['2016-02-15].id} 
{/.weeks} 

Выход:

{pos.'2016-02-15'.id}

Как я могу вывести ID, а не выводить строки?

+0

Можете ли вы прояснить, как выглядят ваши данные? – Interrobang

ответ

0

Пыль не допускает символ - как часть ключа массива.

Как вы упомянули в своем комментарии, - разрешен в ссылках на Пыль, но правила несколько отличаются.

Пылевые ссылки не должны начинаться с числа и содержать символы 0-9a-zA-Z_$-. Это отражает правила для реальных переменных Javascript, за исключением дефиса.

Ключи Array могут начинаться с цифр, но не могут содержать дефисы. Поэтому, когда вы используете дату как часть ключа, Dust использует путь оценки ключа массива, так как дата начинается с числа.

Это будет работать, например, с использованием массива ключей путь оценки:

{#.weeks pos=items} 
    {pos[20160215].id} 
{/.weeks} 

И так бы это, потому что она использует путь ссылки оценки:

{#.weeks pos=items} 
    {pos[date-2016-02-15].id} 
{/.weeks} 

Вы будете иметь немного изменить ваши данные.

Я думаю, что вы обнаружили непоследовательность в способе, которым Пыль обрабатывает ссылочное обозначение. В ранней Пыли ссылки были разрешены только для действительных имен переменных JS. Впоследствии это ограничение было ослаблено, но вокруг него явно были некоторые грубые биты.

+0

Невозможно избежать или избежать перебора данных? – xivo

+1

Вы можете написать специальный помощник, который извлекает ключи в этом формате. – Interrobang

+0

Я читал это, хотя в шаблоне пыли. Клавиша «Пыль» - это один или несколько следующих символов: a-z, A-Z, _ (подчеркивание), $, 0-9 или - – xivo

Смежные вопросы