Если слишком очевидно - не бейте тапками, я пока изучаю vue. Не получается реактивно связать модели. Параметры из baseform в multiselect передаются без проблем, при выборе в multiselect я вижу в отладчике, что параметр value изменился, но в форму данные не попадают Использую laravel и админку craftable, она идет вместе с BaseForm Шаблоны у них в inline форме, выглядит это вот так. Спойлер: обработчик формы Form.js Код (Javascript): import AppForm from '../app-components/Form/AppForm'; Vue.component('post-form', { mixins: [AppForm], data: function() { return { form: { category:'', slug: '' , is_images: false , is_video: false , is_text: false , is_home_page: false , is_home_page_main: false , home_position: '' , count_views: '' , count_views_today: '' , template_id: '' , title: '' , h1: '' , short_description: '' , meta_title: '' , meta_description: '' , home_name: '' , text: '' , enabled: false , published_at: '' , created_by_admin_user_id: '' , updated_by_admin_user_id: '' , } } } }); Спойлер: шаблон blade HTML: <post-form :action="'{{ $post->resource_url }}'" :data="{{ $post->toJson() }}" v-cloak inline-template> <form class="form-horizontal form-edit" method="post" @submit.prevent="onSubmit" :action="this.action" novalidate> <div class="form-group row align-items-center" :class="{'has-danger': errors.has('category'), 'has-success': this.fields.category && this.fields.category.valid }"> <label for="category" class="col-form-label text-md-right" :class="isFormLocalized ? 'col-md-4' : 'col-md-2'">{{ trans('admin.post.columns.category') }}</label> <div :class="isFormLocalized ? 'col-md-4' : 'col-md-9 col-xl-8'"> /*Здесь я использую свой компонент - select-category, связка должна происходить через form.category*/ <select-category v-model="form.category" placeholder="{{ trans('brackets/admin-ui::admin.forms.select_an_option') }}" :options="{{ $categories }}" > </select-category> </div> </div> </form> </post-form> Спойлер: компонент select-category.vue HTML: <template> <div> <multiselect v-model="value" deselect-label="Can't remove this value" track-by="id" label="name" placeholder="Select one" :options="options" :searchable="false" :allow-empty="false"> <template slot="singleLabel" slot-scope="{ option }"> {{ option.name }} </template> </multiselect> </div> </template> <script> import Multiselect from 'vue-multiselect' export default { props: { options:{ type: Array }, value:{ type: Object } }, components: { Multiselect }, data () { return { value: this.value, options: this.options, } }, } </script> где я туплю?
@Roman __construct, я сам, как эту админку развернул и после работы билдера заглянул в шаблоны, офигел. но стало интересно, где-то неуклюже, где-то даже удобно.
ну мб и так но лично я считаю что использовать Vue иначе как CLI - не айс)) хотя вот не далее как сегодня руки чесались - мне нужно было к одному простенькому сайту какое-то UI приделать, я в свое время привык к Element UI, но оно только под фреймворки идет, и была такая шальная мысля - прикрутить Vue прям в HTML но я успешно прогнал ее прочь)))))))))