1

请查看我的控制器

    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));
    }

我更喜欢哪一个?两者的优点是什么?两者有什么区别?

4

1 回答 1

0

第一种方法: 如果您想从 laravel 控制器方法定义您的 javascript 变量,这很有用。然后你可以直接在javascript中使用你的变量。

console.log(markets);

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

第二种方法: 它只是普通的PHP变量声明并将变量传递给刀片模板。您可以在其上调用任何 php 或 laravel 函数。但它在 javascript 中不可用。如果你想让它可用。

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

两者都有其优点和缺点。

于 2019-04-02T11:33:49.213 回答