@romicohen
Системный Архитектор

Как сделать, чтобы VSC адекватно воспринимала Blade внедренный в Vue, типа {!! $someVar !!} — и не красило красным?

Так вышло, что приходится сейчас создавать мутанта и внедрять PHP-переменные в Blade-шаблоне прямо в Vue, вроде:

<script>
            new Vue({
                el: '#app',
                data: function() {
                    return {
                        var: {!! $someVar !!}
                    }
                },
                methods: {},
                mounted() {},
            })
</script>

Работает. Но VSC красит красным var: {!! $someVar !!} и всё, что за ним, и ругается:

Non-null assertions can only be used in TypeScript files.

Путем гугления нашел "решение" - отключить проверку JS в html-файлах вовсе. Но, это не вариант.

Есть и более приемлемое решение: внедрять PHP через обычное <?= $someVar ?>.
Ну, почему бы и нет, конечно. Работает и в красный не красит. Но тогда этот код-мутант совсем уж становится мутант-мутант. К тому же, оно его вроде пытается как-то эскейпить вроде (не помню уже точно, но что-то там не зашло вчера, при попытке найти подходящее решение).

Если кто сталкивался с вопросом - подскажите пожалуйста какое-то простое и элегантное решение.
  • Вопрос задан
  • 95 просмотров
Пригласить эксперта
Ответы на вопрос 2
By_Engine
@By_Engine

пожалуйста какое-то простое и элегантное решение

Облить бензином и сжечь
Ответ написан
delphinpro
@delphinpro
frontend developer
Не особо лучше, но по крайней мере, можно скрипты убрать из html

<script>const someVar =  {!! $someVar !!};</script>


new Vue({
  el: '#app',
  data: function() {
    return {
      var: window.someVar
    }
  },
  methods: {},
  mounted() {},
})
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы