2015-08-15 92 views
2

在使用上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' 
}); 

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

+0

你启用了'html5mode'吗? –

+0

@PankajParkar是的我有 – greener

+0

我认为把''放在你的html head标签上可以解决问题 –

回答

2

您需要定义一个包罗万象的路线将返回运行AngularJS应用程序的基本视角,让AngularJS处理路由的其余部分。

这将这样的伎俩:

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

这将使与/管理匹配这个Laravel路线开始一切。

+0

啊非常感谢! – greener