как передать переменные с сервера в приложение. js? Laravel + Vue - PullRequest
0 голосов
/ 09 июля 2020

плагин, который я хочу использовать, давайте определим переменные в объявлении плагина в приложении. js

Vue.use(AirbnbStyleDatepicker, {monthNames: [
        'January',
        'February',
        'March',
        'April',
        'May',
        'June',
        'Julyyy',
        'Augusttt',
        'September',
        'October',
        'November',
        'December',
    ],});

однако мой веб-сайт имеет несколько локалей, которые управляются на сервере, я обычно кодирую переменные из laravel и передать их как реквизит. В этом случае это не работает. Я не нашел, как инициализировать плагин с параметрами в компоненте, так как же решить эту проблему?

Ответы [ 2 ]

1 голос
/ 09 июля 2020

вы можете определить этот массив javascript перед загрузкой «app. js» в представление. А затем просто поместите его в приложение. js как const.

в поле зрения перед вставкой приложения. js:

<script type="text/javascript"> 
  const trans_month = {{getTransMonths()}}
</script>

затем в вашем приложении. js

Vue.use(AirbnbStyleDatepicker, {monthNames: trans_month,});

или вы можете использовать ajax вызов сервера, который вернет массив переведенных месяцев

0 голосов
/ 09 июля 2020

Только что нашел одно решение, но, может быть, еще одно решение лучше?

  1. Установить этот пакет https://packagist.org/packages/laracasts/utilities
  2. На сервере сделать
JavaScript::put(['langs' => [
   july => __('configname.july'),
   august => __('configname.august')
]])
в клиенте сделать это
Vue.use(AirbnbStyleDatepicker, {monthNames: [
       'January',
       'February',
       'March',
       'April',
       'May',
       'June',
       window.langs['july'],
       window.langs['august'],
       'September',
       'October',
       'November',
       'December',
   ],});
...