{!! !!} без проблем отображает код типа {!! $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 на сайт, и как то не очень хотелось бы придерживаться на всём сайте нестандартной записи переменных..