我正在开发一个 Angular JS + Laravel 应用程序。 在我的页面中,我获取用户列表,当单击一行时,它会重定向到编辑用户页面。
这是我的代码。
Blade 模板
<tbody>
<tr ng-repeat="data in staffArray">
<td>##data.user_fname## ##data.user_lname##</td>
<td>##data.user_mobile##</td>
<td>##data.branch_location##</td>
<td>##data.catagry_name##</td>
<td>
<span><a class="editThis" href="{{URL::route('editStaff',["##data.user_id##"])}}">edit</a></span>
<span><a class="dltThis" href="">delete</a></span>
</td>
</tr>
</tbody>
app.controller('staffController',function($scope,$http){
$http.get('getStaffApi').success(function (data,response){
$scope.staffArray = data;
console.log(data);
})
});
Laravel 路线。
Route::get('staffs', array('as'=>'staffs','uses'=>'StaffController@staffView'));
Route::get('edit-staff-{id}', array('as'=>'editStaff','uses'=>'StaffController@editStaff'));
Route::get('getStaffApi', array('as'=>'get_staff','uses'=>'GetApiController@getStaffs'));
现在我无法在 Controller 中获取 id 的值来进行如下编辑操作。
public function editStaff($id)
{
$arr = User::find($id);
return $arr ;
}
在地址栏中显示,如 http://localhost/onetouchcafe/dev/edit-staff-%23%23data.user_id%23%23
如何解决这个问题......??? 如何在 URL::route 外观中回显 Angular 数据?
最佳答案
您的代码存在 Angular 插值问题
<a href="{{URL::route('editStaff',["##data.user_id##"])}}">Bad Href</a>
这将构建一个与您在浏览器中看到的完全一样的 href,因为 #
被替换为 url 编码实体。 Angular 不知道如何用你想要的 id 来插入它,因为它在 href 中看不到 ##
。
我看不到使用 Laravel URL
外观来阻止其 url 编码的方法,因此您可能必须求助于类型化路由或扩展 Laravel 以允许未编码的参数。
<a href="my/root/##data.user_id##">Link</a>
或者,不要使用路由外观并让 Angular 处理 Controller 内的点击。 (正如评论中指出的,这不是一个很好的方法,但我将其留在这里供引用)
<a ng-click="click(data)">Link</a>
关于javascript - Angular JS+Laravel -- 在 URL::route 外观中回显 Angular 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31625561/