2016-06-28 2 views
0

Мне нужно отправить форму со скрытым тегом поля, который получает свои значения из моего экземпляра vue.Как использовать рули внутри ярлыков erb?

, например:

<%= form_for @post, new_data_path %> 
    <%= f.hidden_field :data, value: {{ data }} %> 
    <%= f.submit 'Checkout' %> 
<% end %> 

Во всяком случае, чтобы рули работать внутри Еврорадио тегов?

+0

Ваша проблема в том, что двойные фигурные скобки конфликтуют с синтаксисом Vue? пожалуйста, объясните litle more –

+0

Да, если я сделаю что-то вроде '', то это будет отображаться без проблем, но любой синтаксис руля не будет работать внутри тегов erb. Я получаю 'синтаксическую ошибку, неожиданную '}',' – cvDv

ответ

2

Vue, по-видимому, оценивается перед рендерингом руля. Используйте Vue delimiters изменить значение по умолчанию {{}}

Vue.config.delimiters = ['@{', '}'] 

Так что теперь ваши двойные фигурные скобки, игнорируются Vue.

+0

, так что я бы поместил ее в свой файл vue.js и заменил 2 фигурных скобки на все, что захочу? – cvDv

+0

В вашем основном файле Vue и замените двойные фигурные скобки, в которых вы хотите получить код Vue, и сохраните их там, где вы хотите handlebar –

+0

IMO, лучше разделить Vue-код на переменные rails. Я сделал некоторое время назад шаблон litle с использованием [Vuejs и rails] (https://github.com/YerkoPalma/vuejs-rails), я передал каждую переменную rails из контроллера в rails и обернул шаблон в 'script' , поэтому я никогда не сталкивался с этой проблемой. Проверьте репо, я думаю, это хороший подход, потому что он не смешивает синтаксис erb с синтаксисом vue –

1

Вам просто нужно обернуть {{data}} в кавычки, и он работает.