尝试将 AngularJS var 与 Laravel Blade var 连接起来
Trying to concatenate an AngularJS var with a 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 }} 破坏了我的应用程序,所以它没有显示我的客户。
更多上下文信息:此表单位于 table 个客户端中,它显示一个删除客户端的按钮。
我应该如何打印变量?
编辑:如果我从我的表单中删除 action 属性,所有客户端都会显示,所以我 100% 确定问题出在这个连接上。
EDIT2:有效
<form method="POST" action="@{{ cliente.id }}">
这也有效
<form method="POST" action="{{ route('clientes.destroy') }}">
EDIT3:整个转发器。
<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 无法正确解析您的代码的原因。我建议使用 <%= %>
因为它是经常使用的结构,你可以在 Underscore templates.
中找到它
2. 那么,由于Angular 1.2.x,可以bind only one expression as action.
所以,这段代码应该可以工作:
<form
method="POST"
action="<%= '{{ route('clientes.destroy') }}/' + cliente.id %>">
不修改任何内容的更好解决方案是:
action="{{url('urlportal')}}/@{{cliente.id}}"
我正在开发 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 }} 破坏了我的应用程序,所以它没有显示我的客户。
更多上下文信息:此表单位于 table 个客户端中,它显示一个删除客户端的按钮。
我应该如何打印变量?
编辑:如果我从我的表单中删除 action 属性,所有客户端都会显示,所以我 100% 确定问题出在这个连接上。
EDIT2:有效
<form method="POST" action="@{{ cliente.id }}">
这也有效
<form method="POST" action="{{ route('clientes.destroy') }}">
EDIT3:整个转发器。
<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 无法正确解析您的代码的原因。我建议使用 <%= %>
因为它是经常使用的结构,你可以在 Underscore templates.
2. 那么,由于Angular 1.2.x,可以bind only one expression as action.
所以,这段代码应该可以工作:
<form
method="POST"
action="<%= '{{ route('clientes.destroy') }}/' + cliente.id %>">
不修改任何内容的更好解决方案是:
action="{{url('urlportal')}}/@{{cliente.id}}"