Php 将AngularJS$routeparams与Laravel一起使用

Php 将AngularJS$routeparams与Laravel一起使用,php,angularjs,laravel,routing,laravel-5,Php,Angularjs,Laravel,Routing,Laravel 5,在Laravel顶部使用AngularJS时,假设我在Laravel中有此路线: Route::get('/admin/', function() { return View::make('pages.writer'); }); 它生成一个视图,加载AngularJS组件,包括$routeProvider,配置如下: $routeProvider.when('/writer/:publicationName?', { templateUrl: '/templates/writer.ht

在Laravel顶部使用AngularJS时,假设我在Laravel中有此路线:

Route::get('/admin/', function() { return View::make('pages.writer'); });
它生成一个视图,加载AngularJS组件,包括
$routeProvider
,配置如下:

 $routeProvider.when('/writer/:publicationName?', {
   templateUrl: '/templates/writer.html',
   controller: 'WriterCtrl',
   caseInsensitiveMatch: true
 }).otherwise({
   templateUrl: '/templates/library.html',
   controller: 'LibraryCtrl'
 });

如果我调用URL:
/admin/writer/My Favorite Publication
,我会得到一个Laravel错误,因为路由不存在。有没有办法告诉Laravel某个特定URL的角路由何时接管(即
/admin/
之后的任何内容),因此,我可以使用
$routeParams

您需要定义一个全包路由,该路由将返回运行AngularJS应用程序的基本视图,并让AngularJS处理其余路由

这将实现以下目的:

Route::get('/admin/{ignore?}', function() { 
  return View::make('pages.writer'); 
})->where('ignore', '.*');

这将使以/admin开头的所有内容都与此Laravel路径匹配。

您启用了
HTML5模式吗?@PankajParkar是的,我认为通过在html
头部添加
标记将修复此问题issue@PankajParkar我也这么做了!我也许应该澄清一下,URL是直接调用的,而不是通过
$location.path()
@PankajParkar调用的,这些都不起作用。在任何东西返回到浏览器或angularjs应用程序之前,它首先需要通过Laravel,在Angular应用程序执行之前,应用程序在此阶段中断