2016-11-22 4 views
0

UPDATE: Проблемы не воспроизводятся с использованием стиля CDN. Вот отлично работающий JSBin: https://jsbin.com/ziqasifoli/edit?html,js,outputКомпонент Vue по умолчанию выбирает некоторые параметры

Похоже, что это связано с чем-то между webpack/gulf/elixir/vuefy .. I.e., все это инфраструктура Laravel 5.3. Не уверен даже, где начать отладку.

...

я борюсь с простым (как я думал) компонент, который получает name, options и selected в качестве входных данных и отображает несколько переключателя:

<!-- TagSelector.vue: --> 

<template> 
    <select :name="name" v-model="selected" multiple> 
     <option v-for="option in options" v-bind:value="option.value"> 
     {{ option.text }} 
     </option> 
    </select> 
</template> 

<script> 
    export default { 
     props: ['name', 'options', 'selected'], 
    } 
</script> 

.

// app.js 

Vue.component('tags-selector', require('./components/form_fields/TagsSelector.vue')); 

const app = new Vue({ 
    el: '#app' 
}); 

.

<!-- some.form.blade.php --> 

<tags-selector 
    class="form-control" 
    name="posted_data[tags]" 
    :selected="['opt1', 'opt2']" 
    :options='{!! json_encode($options) !!}' 
></tags-selector> 

Он отображает селектор, как ожидалось, но не выбранных параметров. Как мне заставить его работать?

+0

просьба представить JSBin или сим Илар. –

+0

https://jsbin.com/ziqasifoli/edit?html,js,output Здесь я не использую модули и/или vuefy, и это действительно хорошо работает. Итак, теперь нужно выяснить, что не так с «laravel-style» vuefying ... – pilat

ответ

1

Чтобы установить некоторые параметры, выбранные по умолчанию вы хотите, чтобы связать их с данными, чтобы сделать это просто сделать копию selected опоры и использовать v-model, чтобы связать его, что вы можете сделать с созданным крючком:

created: function() { 
    this.selectedCopy = this.selected; 
    }, 
    data: function(){ 
    return { 
     selectedCopy: [] 
    } 
    } 

Тогда просто связать их с помощью V-модель:

<select :name="name" v-model="selectedCopy" multiple> 
    <option v-for="option in options" v-bind:value="option.value"> 
    {{ option.text }} 
    </option> 
</select> 

Вот JSFiddle: https://jsfiddle.net/3cq1jjL8/

+0

Я думаю, что я, возможно, слишком усложнил свой последний ответ, теперь я перечитал ваш вопрос и обновил свой ответ для вас. –

+0

Чем ты. Оказывается, однако, что мой оригинальный код (только с «свойствами») отлично работает, когда вы используете CDN для загрузки Vue. Есть проблемы где-то еще ... Проверьте мой вопрос обновлен. – pilat

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