vue js onclick for select

320
06 мая 2018, 17:03

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

<template>
    <div class="product-props">
        <div v-for="property in properties">
            <div v-if="property.status" class="props-block">
                <form>
                    <div class="prop-name">{{ property.name }}:</div>
                    <select @change="changedValue(optionSelected)" v-model="optionSelected">
                        <option v-for="value in property.values" v-bind:value="value.name" v-bind:selected="value.selected">{{ value.name }}</option>
                    </select>
                    <button v-on:click.prevent="onDelete(property.id)">Delete</button>
                </form>
            </div>
        </div>
        <div v-for="property in properties">
            <div v-if="!property.status" class="props-block hidden">
                <form>
                    <div class="prop-name">{{ property.name }}:</div>
                    <select>
                        <option v-for="value in property.values" v-bind:value="value.name">{{ value.name }}</option>
                    </select>
                    <button v-on:click.prevent="onDelete(property.id)">Delete</button>
                </form>
            </div>
        </div>
        <div class="prop-add-block">
            <form>
                <select>
                    <option disabled value="">Выберите один из вариантов</option>
                    <option v-for="property in properties" v-if="!property.status" v-bind:value="property.name">
                        {{ property.name }}
                    </option>
                </select>
                <button v-on:click.prevent="onAdd">Add</button>
            </form>
        </div>
    </div>
</template>
<script>
    export default {
        name: 'product-edit',
        props: {
            propId: String,
        },
        data() {
            return {
                optionSelected: {},
                dataform: {},
                properties: {},
            }
        },
        methods: {
            changedValue: function(value) {
console.log(JSON.stringify(value));
},
            onDelete(toDelete) {
                Vue.http.headers.common['X-CSRF-TOKEN'] = document.head.querySelector('meta[name="csrf-token"]').content;
                this.$http.post('/vueDeleteProp', {product_id: this.propId, option_id: toDelete}, {emulateJSON:true})
                .then(function() {
                    this.$http.get('/vueProductsEdit/' + this.propId)
                    .then(function(response) {
                        this.properties = response.data;
                    });
                });
            }
        },
        created: function() {
            this.$http.get('/vueProductsEdit/' + this.propId)
            .then(function(response) {
                this.properties = response.data;
            });
        },
        mounted() {
        }
    }
</script>
READ ALSO
Автоматизирование таблиц при помощи jquery

Автоматизирование таблиц при помощи jquery

Имеется таблица на сайте и хотелось бы её как-то автоматизировать

220
Запись в MYSQL бита при котором меняется цвет svg на сайте

Запись в MYSQL бита при котором меняется цвет svg на сайте

На страничке имеется изображение которое должно меняться относительно записей в MYSQLНа подобии если вбиваю на PHPMYADMIN единицу то на странице...

228
Разве Hashmap сортируется автоматичски?

Разве Hashmap сортируется автоматичски?

Написал тестовый код, чтоб объяснить проблему

251
Плавное изменение громкости SourceDataLine

Плавное изменение громкости SourceDataLine

Привет всем в попытках написания музыкального плеера возникла потребность в плавном изменении громкости звука код рабочий вот только при...

265