Две переменные в одну (CoffeeScript)

быстрый вопрос. Что с этим не так?

content_key = $('#login_ConfigPostcontentkey').val()
content_value = $('#login_ConfigPostcontentvalue').val()
content = { #{content_key} : content_value }

Когда я запускаю его, я получаю:

unmatched OUTDENT

Это уникальный случай для CoffeeScript с необходимостью форматирования.


person TheAce    schedule 19.05.2014    source источник


Ответы (1)


Вы не можете использовать интерполяцию строк (используя #{}) в качестве ключа свойства объекта. В необработанном Javascript нет способа использовать обозначение объекта в фигурных скобках для ссылки на переменную имени ключа. Это должна быть строка. Следовательно, coffeescript не может скомпилировать этот код.

Если вы используете обозначение объектов в квадратных скобках, это будет работать. Измените последнюю строку:

content[content_key] = content_value 
person carlbenson    schedule 19.05.2014
comment
Но я использую CoffeeScript в качестве языка. Это что-то меняет? - person TheAce; 19.05.2014
comment
Coffeescript компилируется в Javascript, а это означает, что базовый код должен работать на Javascript. Так что, к сожалению, в этом случае нет другого способа сделать то, что вы хотите сделать. - person carlbenson; 19.05.2014
comment
Но все, что мне нужно, это чтобы контент был комбинацией переменных content_key и content_value? Это невозможно? - person TheAce; 19.05.2014