如何在 blade 模板中将 angular 变量用于 laravel 函数?

How to use angular variables into laravel functions in a blade template?

我正在使用 laravel 和 angular.js 的组合。对于 angular,我将 interpolateProvider 符号更改为 <% %>。对于 laravel,我使用标准的 {{ }} 符号。

现在在我的视图中使用 angular 变量并将其传递给 laravel 中的函数。

我试过这个:

{{ route('getEdit', ['id' => <% loop.id %>]) }}

其中 loop.id 来自 angular 的 ng-repeat。而route是来自laravel的路由函数。

这给出了一个错误:

语法错误,意外的'<'

您不能将 javascript 变量传递给 PHP,您需要使用 Ajax.

在名为 getRoute 的控制器中创建一个操作,post [/get-route/{route}]

PHP

public function getRoute($request, $route) {
    return route($route, $request->input('params'));
} 

并使用您的路由名称和参数对象向该路由发出请求:

Jquery

$.post('{{ route('getRoute') }}', {params: [{id : loop.id}]}, function(data) {
    console.log(data); //should output the route with javascript variable loop.id
});

或使用 angular :

Angular

<script>
   var getRoute = '{{ route('getRoute') }}'; //Define your route inside a PHP file
</script>

$http.post(getRoute, {params: [{id : loop.id}]}).then(function(data) {
        console.log(data); //should output the route with javascript variable loop.id
});