Php 将AngularJS$routeparams与Laravel一起使用
在Laravel顶部使用AngularJS时,假设我在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
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应用程序执行之前,应用程序在此阶段中断