• Почему не работает V-model?

    Дочерний эмитит событие: this.$emit('paginate',page);
    но родительский его не слушает и не обрабатывает.

    См. https://vuejs.org/guide/components/events.html

    В родительском надо что-то типа:
    - <BasePagination v-model="page" :count="countProducts"  :car="car"></BasePagination>
    + <BasePagination @paginate="paginate" :count="countProducts"  :car="car"></BasePagination>
    и добавить метод обработчик сего:
    methods: {
      paginate(page) {
        this.page = page;
      },
    },
    Ответ написан
    1 комментарий
  • Почему не работает v-model?

    0xD34F
    @0xD34F Куратор тега Vue.js
    Не работает потому, что работать нечему - вы не используете v-model. Документацию, судя по показанной чуши, вы вообще не читали (максимум, одним глазом глянули её пересказ каким-нибудь дегенератом на youtube'е). Это зря. Документацию читать надо. Вот прямо сейчас откройте и почитайте. Ну а пока читаете, исправим ваш говнокод.

    В родительском компоненте заменить model="global" на v-model="global".

    В дочернем, добавить:

    model: {
      prop: 'model',
    },
    computed: {
      checked() {
        return this.model === this.value;
      },
    },

    а шаблон пусть будет такой:

    <label :class="{ labelActive: checked }">
      <input type="radio" :checked="checked" @input="$emit('input', value)">
      {{ value }}
    </label>
    Ответ написан
    Комментировать