Не могу найти элемент, потому что v-если медленно - PullRequest
0 голосов
/ 16 мая 2018

У меня странная досадная ошибка.У меня есть ul, который покажет, если массив имеет значения, поэтому я использую v-if.Когда массив имеет значения, я хочу применить к нему некоторые CSS.Но поскольку между v-if и реально существующим элементом существует задержка, мой селектор не находит элемент.

    <template>
      <ul v-if="errors.length" class="error">
        <li v-for="error in errors">{{ error }}</li>
      </ul>
    </template>

    <script type="text/javascript">

    export default {

      data() {
        return {
          errors: [],
        }
      }

      methods: {

        validate() {
            if (someErrorCondition) {
                this.errors.push('You have an error');
                // The next call fails because .error doesn't exist yet
                $(this.$el).find('.error').css('border', 'solid 10px red');

                // Error above; $(this.$el).find('.error') is not found. Same for $('.error')
                // This is because of the v-if

                // NOTE: the second time validate is called, this works, presumably because it exists now.
            }
        }
      }
    }
    </script>
...