Javascript :: put()或return view('index',compact($ data))

时间:2019-04-02 11:05:20

标签: angularjs laravel laravel-views

请查看我的控制器

    class myController extends Controller
    {
      $markets = Market::all();
      \JavaScript::put([
         'markets' => $markets,
      ]);

      return view('test.index');
    }

使用此方法,我可以在markets变量的angularjs文件中获取所有市场。

我看到了类似的东西

    class myController extends Controller
    {
      $markets = Market::all();
      return view('test.index', compact($markets));
    }

我想要哪一个?两者的优点是什么?两者有什么区别?

1 个答案:

答案 0 :(得分:0)

第一种方法: 如果要从laravel控制器方法定义javascript变量,这将很有用。然后,您可以将变量直接用于javascript。

console.log(markets);

但是问题是您不能在该变量上调用PHP或laravel函数。

第二种方法: 这只是常规的PHP变量声明,并将变量传递到刀片模板。您可以在其上调用任何php或laravel函数。但是它在javascript中不可用。 如果要使其可用。

var markets = "{{ $markets }}";
console.log(markets);

两个都有优点和缺点。