在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
。
答案 0 :(得分:2)
您需要定义全能路线,该路线将返回运行 AngularJS 应用的基本视图,并让 AngularJS 处理剩下的路由。
这样可以解决问题:
Route::get('/admin/{ignore?}', function() {
return View::make('pages.writer');
})->where('ignore', '.*');
这将使以 / admin 开头的所有内容与此 Laravel 路由匹配。