Недопустимая длина строки при повторении $ 1 (VueJS) [Решено: продолжить - зарезервированное слово JavaScript] - PullRequest
0 голосов
/ 16 апреля 2019

У меня ошибка при выполнении функции повтора $ 1 при компиляции очень простого шаблона VueJS. Эта ошибка препятствует компиляции приложения.

Не могу прикрыть голову тем, что не так с шаблоном.

Вот код: (Я заменил части шаблона, состоящие исключительно из текста, словом «текст».)

<template>
    <div class="container">
        <div class="row">
            <div class="col-lg-10 mx-auto" v-if="showPrivacyDisclaimer">
                <div class="card mt-4">
                    <div class="card-body">
                        <div class="card-title">
                            text
                        </div>

                        <p>
                            <b>text</b>
                        </p>
                        <p>
                            text.
                        </p>
                        <p> 
                            text
                        </p>

                        <div class="text-sm">
                            <a @click="details = true" style="text-decoration: underline">
                                Leer más: ¿Qué datos recopilamos?
                            </a>

                            <p v-if="details">
                                text
                            </p>

                            <br>

                            <a @click="rights = true" style="text-decoration: underline">
                                Leer más:  ¿Cómo ejercer tus derechos sobre estos datos?
                            </a>

                            <p v-if="rights">
                                text
                            </p>
                        </div>

                    </div>
                    <div class="card-footer">
                        <button type="button"
                            class="btn btn-primary"
                            @click="continue()">
                            Aceptar y continuar
                        </button>
                    </div>
                </div>

                <img :src="baseUrl + '/public/img/eks-logo.svg'"
                    class="mt-4" style="max-width: 10rem">

                <p class="text-muted mt-4 text-sm">
                    text
                    <br>
                    more text
                </p>
            </div>
        </div>
    </div>
</template>

<script>
export default {
    name: 'Home',
    data() {
        return {
            baseUrl: process.env.VUE_APP_PHP_BASE_URL,
            showPrivacyDisclaimer: false,
            details: false,
            rights: false,
        }
    },
    mounted()
    {
        let hasPrivacyAccepted = window.localStorage.getItem('pda');
        if (!hasPrivacyAccepted) {
            this.showPrivacyDisclaimer = true;
        } else {
            this.continue();
        }
    },
    methods: {
        continue()
        {
            window.localStorage.setItem('pda', 1);

            this.$router.replace({
                path: '/encuesta/' + this.$route.query.e,
                query: this.$route.query
            })
        }
    }
}
</script>

Если я полностью удаляю все между тегами <template> (кроме первого необходимого div), приложение снова начинает компилироваться.

Я пытался постепенно удалять части шаблона, которые используют директивы Vue (v-if и т. Д.). Но это не привело к компиляции приложения: (

Пожалуйста, помогите!

Обновление: Я забыл упомянуть, что уже пытался удалить и переустановить node_modules

Обновление 2: Я нашел источник ошибки. continue является зарезервированным словом JS.

Ответы [ 2 ]

1 голос
/ 16 апреля 2019

Вы не можете использовать @click="continue()"

Это зарезервированное слово для javascript.

Полный список можно посмотреть здесь:

https://www.w3schools.com/js/js_reserved.asp

0 голосов
/ 16 апреля 2019

Обновление: я начал рефакторинг шаблона в двух представлениях, и появилось всплывающее сообщение с более описательным сообщением об ошибке.

Ошибка состояла в том, что я использовал зарезервированное слово JavaScript в качестве имени метода (continue - зарезервированное слово).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...