通过刀片(laravel)将props(array)传递到vue.js

And*_*rey 2 javascript laravel vue.js

如何通过laravel(blade)在vue js中传递数组?我试图这样做:

// $ users-阵列刀片:

<all-users users="{{ $users }}"></all-users>
Run Code Online (Sandbox Code Playgroud)

提示:

<tr v-for="user in users" >

                    <td>{{ user.id }}</td>
                    <td>{{ user.login }}</td> 
</tr>
Run Code Online (Sandbox Code Playgroud)

js:

export default {

    props:['users']
    }
Run Code Online (Sandbox Code Playgroud)

//不工作

PS我也尝试过:
<all-users users="{{ $users[0]->toJson() }}"></all-users>
输出:

{"id":2,"email":"usersss@mail.ru","login":"SimpleUser","role_id":0,"images":"public\/img\/default_avatar.png","created_at":null,"updated_at":null}
Run Code Online (Sandbox Code Playgroud)

预先感谢您的帮助

Has*_*hat 7

要将数据从 laravel 传递到 vue,您最好的选择是使用 Laravel 提供的 @json 选项。所以你的代码会是这样的:

<all-users :users='@json($users)'></all-users>
Run Code Online (Sandbox Code Playgroud)

请记住,您需要使用单引号 @json 函数。另外不要忘记为您的用户道具使用“:”,否则它将被解释为字符串。

json 数据的 Laravel 文档:https ://laravel.com/docs/master/blade#displaying-data


Pra*_*mil 6

<all-users users="@json($users)"></all-users>
Run Code Online (Sandbox Code Playgroud)

要么

 <all-users users="{{ json_encode($users) }}"></all-users>
Run Code Online (Sandbox Code Playgroud)