@EvgeniiR
https://github.com/EvgeniiR

Как реализовать вывод blade кода внутри blade чтобы vue не выдавал ошибки на переменных(или как экранировать фигурные скобки в Vue)?

{!! !!} без проблем отображает код типа {!! $var !!}, но если внутри $var есть строка ' {{ $var2 }}' ($var = '{{ $var2 }}'), бремя отобразить перменную внутри {{ .. }} принимает на себя vue, и в итоге даёт ошибку
[Vue warn]: Property or method "$var" is not defined on the instance but referenced during render. Make sure that this property is reactive, either in the data option, or for class-based components, by initializing the property. See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.

(found in <Root>)


Можно ли указать vue что переменные внутри, допустим, определённого div нужно экранировать?
Такой код vue также не может отрендерить:
<div class="body"><span v-html="{!! $var !!}"></span></div>


UPD: Пока что для себя найдено 2 варианта
1. Не рендерить из php а передавать данные в vue и показывать через v-html
2. Установить другие разделители(delimiters) для переменных Vue:
const app = new Vue({
    delimiters: ['${', '}'],
    el: '#app'
});
.
2 вариант плох тем, что у меня один экземпляр vue на сайт, и как то не очень хотелось бы придерживаться на всём сайте нестандартной записи переменных..
  • Вопрос задан
  • 2256 просмотров
Решения вопроса 1
@EvgeniiR Автор вопроса
https://github.com/EvgeniiR
UPD: Нашел ответ. Нужно использовать v-pre
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Ваш ответ на вопрос

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

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