Я использую Sinatra и клиентский шаблон Dust.js (сродни Mustache) для создания простого потока форм.В исходном состоянии метки форм передаются через JSON
{ "fields" : [ { "title" : "First Name", "name" : "fn" }, { "title" : "Last Name", "name": "ln" } ] }
и интерпретируются Dust:
{#fields} <label>{title}: <input type="text" name="{name}" /></label> {/fields}
Это все хорошо.После того, как форма отправлена, я хочу повторно использовать {title}
, но также перебирать введенные пользователем значения, используя {name}
в качестве ключа.Было бы неплохо иметь возможность написать что-то вроде этого - даже если это не сработает, поскольку <%= params[] %>
оценивается до {name}
:
<ul>
{#fields}
<li><b>{title}</b>: <%= params[{name}] %></li>
{/fields}
</ul>
И вот здесь я застрял,Даже если я создам переменную экземпляра в контроллере и передам ей все значения параметров, я все еще не уверен, как синхронизировать итерацию как для переменных {title}
, так и для params.values
.
.насколько я получил:
# controller
post '/submit' do
@v = []
params.values.each do |v|
@v << "#{v}"
end
erb :submit
end
<!-- view -->
<ul>
{#fields}
<% @v.each do |k| %>
<li><b>{title}</b>: <%= k %></li>
<% end %>
{/fields}
</ul>
Любая помощь будет очень ценится!