在Laravel中使用AngularJS $ routeparams

时间:2015-08-15 18:34:51

标签: 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.html',
   controller: 'WriterCtrl',
   caseInsensitiveMatch: true
 }).otherwise({
   templateUrl: '/templates/library.html',
   controller: 'LibraryCtrl'
 });

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

1 个答案:

答案 0 :(得分:2)

您需要定义全能路线,该路线将返回运行 AngularJS 应用的基本视图,并让 AngularJS 处理剩下的路由。

这样可以解决问题:

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

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