有时候,我需要将数据从控制器传递到视图,有时我不这样做! 但是,当没有数据传递时,我会收到此错误:
未定义变量:教程(查看: /var/www/html/resources/views/home.blade.php)
无数据示例:
public function index()
{
return view('home');
}
包含数据的示例
public function tutorial()
{
return view('home', ['tutorial' => 'Welcome to myproject, lets get started!!!']);
}
刀片:
beforeMount()
{
let tutorial = {{ var_export($tutorial) }} // ERROR!!
if (tutorial) {
return
}
this.reloadData()
}
我认为我可以在索引函数中这样做:
public function index()
{
return view('home', ['tutorial' => []);
}
但是它太恶心了!!无论如何,我的Vue中是否存在从laravel传递的数据的检查??
答案 0 :(得分:1)
因为您不能仅将Laravel变量放入js。
解决问题的选项包括:
您可以执行以下操作:
<Home tutorial="{{ $tutorial }}"> <!-- make tutorial become to props -->
</Home>
在您的视图组件中:
Vue.component('Home', {
props: [
{
name: 'tutorial', // add this props
default: '',
}
],
beforeMount()
{
if (this.tutorial) { // use like this.tutorial
return
}
this.reloadData()
}
});