javascript - 将 Laravel 变量传递给 Vue.js

标签 javascript laravel vue.js

我开始学习 Vue.js。我想知道如何将 blade 变量传递给 Vue.js?

喜欢

    return view('user.profile', ['locations' => $allLocations);

我可以在其中通过 Vue.js 对其进行操作吗?

因为我计划实现动态下拉列表。实际上,有两个下拉菜单。因此,无论用户在第一个下拉菜单中选择什么,第二个下拉菜单都将仅显示特定选项。

我已经尝试通过 1.) 隐藏元素并通过 Javascript 检索它来实现它,或者通过 2.) 在页面加载后使用 HTTP AJAX 请求来初始化元素,但我发现此方法有点困惑或有点一个资源 pig 。除了我上面提到的,还有其他实现吗?

谢谢!

最佳答案

您可以实现这两种方式来传递变量:

  1. 传递变量以JSON格式查看

    <script>
        var app = <?=json_encode($locations)?>
    </script>
    

    另请参阅:Displaying Data

  2. 通过ajax请求传递变量

    JS 片段(可以放在 Vue 挂载/创建的方法中)

    $.ajax({
        method: 'GET',
        url: '/api/locations',
        success: function (response) {
            // response.locations
        }
    });
    

    API 路由 (routes/api.php)

    Route::get('locations', 'LocationController@getLocations');
    

    位置 Controller

    public function getLocations() {
        ...
        return response()->json($locations);
    }
    

关于javascript - 将 Laravel 变量传递给 Vue.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49399072/

相关文章:

javascript - 生成图的每种拓扑排序

php - Laravel - 无法将经过身份验证的用户的 ID 放入数组中

javascript - Vue.js - 如何访问子组件的计算属性(Vuetify 数据表)

vue.js - 在 GitHub Pages 中部署 Nuxt.js 的问题

vue.js - 为什么 Apollo/GraphQL 返回一个不可扩展的对象?

javascript - 测试 AngularJS Controller 的初学者指南

javascript - 如何在单独的文件中访问数组元素

javascript - 在 JavaScript for 循环中休眠

php - Laravel 更新创建新表规则而不是更新

php - Laravel 响应 json 在实际响应后添加空大括号