尝试在js

时间:2017-06-30 05:25:25

标签: javascript laravel laravel-5

下面是我的js代码,它将路由及其参数附加到锚标记中。

var href = "{!! route('ShowUserMainForm', ['RoleID'=>" + row.RoleID + "]) !!}";

var UserColumn = "<td><a href=' " + href + "'><button>Users</button></a></td>";

它提供以下网址

http://localhost:1234/public/system-users/%20+%20row.RoleID%20+%20

我期待以下。

  

http://localhost:1234/public/system-users/1

我错过了什么吗?

2 个答案:

答案 0 :(得分:8)

没有。的方法:

因为{!! !!}块代码在JavaScript代码之前呈现,因此您需要创建路由然后在{!!之外连接RoleID !!}。

如果 row.RoleID 是json:

var href = "public/system-users/" + row.RoleID

var href = "{!! route('ShowUserMainForm') !!}" + row.RoleID;

var href = "{!! route('ShowUserMainForm', ['RoleID'=>'']) !!}" + row.RoleID;

答案 1 :(得分:1)

%20 - &gt;空格字符的百分比编码

您看到的是此字符串被指定为RoleID的值:+ row.RoleID +

你在那些外部引号中运行Laravel,所以只需删除JS字符串连接,并直接编写PHP(假设你在服务器端有一个$row变量):

var href = "{!! route('ShowUserMainForm', ['RoleID'=> $row.RoleID]) !!}";

当Laravel将您的路线渲染到锚标记并构建该HTML(在{!! !!}内发生的所有内容)时,您正在服务器上运行。当您运行javascript时,您在客户端。您无法以您尝试的方式将数据从客户端发送到服务器。