@lolrofl01

Почему в компонент vue передается только число или json?

Начну с кода, шаблонизатор blade:
<single-news
                    :news="{{ json_encode($news) }}"
                    :url="123"
            ></single-news>


Второй параметр url передает лишь числа и json, если передать любую строку - будет undefined, если php функцию любую, кроме json_encode - скрипт вылетит и ничего не отобразит вовсе.
Вот код компонента:
export default {
        props: [
            'news',
            'url'
        ],
        mounted() {
            console.log('Check: ' + this.url);
        }
    }


Почему так происходит? Мне необходимо строку передать в url
  • Вопрос задан
  • 94 просмотра
Решения вопроса 1
0xD34F
@0xD34F Куратор тега Vue.js
Почему так происходит?

Потому что вы используете динамическую передачу данных. Соответственно, переданная строка либо рассматривается как имя свойства текущего компонента, либо является некорректным мусором. Отсюда undefined (свойства нет) и "скрипт вылетит" (из-за мусорного значения параметра не удалось скомпилировать шаблон).

Ну а числа и json, они являются корректными выражениями: число оно и есть число, а json рассматривается как литерал объекта/массива.

Мне необходимо строку передать в url

Передавайте статическое значение, или оберните значение в кавычки.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
filgaponenko
@filgaponenko
frontend developer
:url=" 'stroka' "
spoiler
spangebob_raibow.jpg
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы