尝试将 AngularJS var 与 Laravel Blade var 连接起来



我正在开发一个Laravel应用程序。首先,我使用FormBuilder制作了一个表单,所以我有这个:

{!! Form::open(['method' => 'delete', 'route' => ['clientes.destroy', $cliente->id]]) !!}

当我决定开始使用AngularJS时,我意识到我必须删除FormBuilder,因为现在我必须使用Angular打印"cliente id"(使用ng-repeat)。所以我把我的代码改成了这个(如果你不知道Laravel,请忽略隐藏的输入):

<form method="POST" action="{{ route('clientes.destroy') }}/@{{ cliente.id }}">
    <input name="_method" type="hidden" value="DELETE">
    <input name="_token" type="hidden" value="{{ csrf_token() }}">

问题是@{{cliente.id}}破坏了我的应用程序,因此它不会显示我的客户端。

更多上下文:此窗体位于客户端表中,它显示一个用于删除客户端的按钮。

我应该如何打印变量?

编辑:如果我从表单中删除操作属性,将显示所有客户端,因此我 100% 确定问题出在此串联上。

编辑2:这有效

<form method="POST" action="@{{ cliente.id }}">

这也有效

<form method="POST" action="{{ route('clientes.destroy') }}">

编辑3:整个中继器。

<tr ng-repeat="cliente in buscador.clientes">
    <td>@{{ cliente.tipo.nombre }}</td>
    <td>@{{ cliente.nombre }}</td>
    <td>@{{ cliente.direccion  }}</td>
    <td>@{{ cliente.telefono  }}</td>
    <td>@{{ cliente.email  }}</td>
    <td>@{{ cliente.rubro  }}</td>
    <td>
    <form method="POST" action="@{{ '{{ route('clientes.destroy') }}/' + cliente.id }}">
        <input name="_method" type="hidden" value="DELETE">
        <input name="_token" type="hidden" value="{{ csrf_token() }}">
        <button class="btn btn-danger"><i class="fa fa-trash-o"></i></button>
    </form>
</td>

1.首先,您需要更改AngularJS大括号,以免与Blade模板引擎冲突:

var app = angular.module('app', []) 
  .config(function($interpolateProvider) {
    // To prevent the conflict of `{{` and `}}` symbols
    // between Blade template engine and AngularJS templating we need
    // to use different symbols for AngularJS.
    $interpolateProvider.startSymbol('<%=');
    $interpolateProvider.endSymbol('%>');
  });

您当前正在使用@{{ }}这是冲突的根源,这就是为什么 PHP 无法正确解析您的代码的原因。我建议使用<%= %>因为它是经常使用的结构,您可以在下划线模板中找到它。

2.然后,从Angular 1.2.x开始,您只能绑定一个表达式作为动作。

因此,此代码应该有效:

<form 
  method="POST" 
  action="<%= '{{ route('clientes.destroy') }}/' + cliente.id %>">

不修改任何内容的更好解决方案是:

action="{{url('urlportal')}}/@{{cliente.id}}"

最新更新