试图将翻译键值的json从laravel blade传递给vue.js时出现问题

问题描述 投票:5回答:2

这是我的翻译文件

return [
    "Key1" =>  "Message 1",
    "Key2" => "Message 2",
    "Key3" => "Message 3",
    "Key4" => "Message 4",
    "Key5" => "Message 5",
    "Key6" => "Message 6",
    "Key7" => "Message 7",
    "Key8" => "Message 8",
];

这是Laravel Blade中的代码

<profile
    v-bind:ErrorMessages= "{                            
    Messages: '{!! json_encode(Lang::get('Profile')) !!}'
}">                                
</profile>

在上面的组件中,我试图将完整的翻译文件从laravel blade传递给Vue.js

但是,上面的代码打印网页中的所有键并扰乱整个布局。

我错过了从laravel到Vue.js以正确格式传递json的任何内容

更新1

我可以使用下面的代码将对象从laravel传递给vue.js.但下面更像是手动工作逐个输入文件的每个翻译密钥。

<profile
    v-bind:messages= "{                            
    Key1: '{!! trans('Profile.Key1') !!}',
    Key2: '{!! trans('Profile.Key2') !!}',
    Key3: '{!! trans('Profile.Key3') !!}',
    Key4: '{!! trans('Profile.Key4') !!}',
    Key5: '{!! trans('Profile.Key5') !!}',
    Key6: '{!! trans('Profile.Key6') !!}',
    Key7: '{!! trans('Profile.Key7') !!}',
    Key8: '{!! trans('Profile.Key8') !!}'
}">                                
</profile>
vue.js laravel-5.6 laravel-5.7 laravel-5.8
2个回答
5
投票

试试这个:

<profile
    v-bind:ErrorMessages= "'{!! json_encode(Lang::get('Profile')) !!}'">                                
</profile>

请注意'"之间的额外{ - 所以你会传递你想要的字符串。


0
投票

您似乎需要将对象传递给:messages

我对Laravel不太熟悉,请尝试以下选项:

<profile messages='{!! json_encode(Lang::get("Profile")) !!}'></profile>

要么

<profile :messages="{!! json_encode(Lang::get('Profile')) !!}"></profile>
© www.soinside.com 2019 - 2024. All rights reserved.