如何将变量从服务器传递到 app.js? Laravel + Vue

how to pass variables from server to app.js? Laravel + Vue

我想使用的插件让我们在 app.js

中的插件声明中定义变量
Vue.use(AirbnbStyleDatepicker, {monthNames: [
        'January',
        'February',
        'March',
        'April',
        'May',
        'June',
        'Julyyy',
        'Augusttt',
        'September',
        'October',
        'November',
        'December',
    ],});

但是我的网站在服务器中管理的语言环境很少,我通常对来自 laravel 的变量进行编码并将它们作为道具传递。在这种情况下,这是行不通的。我没有找到如何在组件中使用选项初始化插件,那么有什么方法可以解决这个问题?

刚刚找到一个解决方案,但也许还有更好的解决方案?

  1. 安装这个包https://packagist.org/packages/laracasts/utilities
  2. 在服务器中做
JavaScript::put(['langs' => [
   july => __('configname.july'),
   august => __('configname.august')
]])
  1. 在客户端中执行此操作
Vue.use(AirbnbStyleDatepicker, {monthNames: [
       'January',
       'February',
       'March',
       'April',
       'May',
       'June',
       window.langs['july'],
       window.langs['august'],
       'September',
       'October',
       'November',
       'December',
   ],});

您可以在视图中加载“app.js”之前定义 javascript 数组。然后把它放在 app.js 作为 const.

在插入 app.js 之前查看:

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

然后在你app.js

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

或者您可以使用 ajax 调用服务器,这将 return 翻译月份数组