结合AngularJS和Laravel路由

问题描述 投票:2回答:2

我正在将AngularJS和Laravel用于我的Web应用程序项目。 我的路由如下所示:

AngularJS:

angular.config(['$stateProvider','$urlRouterProvider',function($stateProvider,$urlRouterProvider) {
    $urlRouterProvider.otherwise('/');

    $stateProvider
    .state('home', {
            url: '/',
            templateUrl: '/admin/dashboard'
        });
}]);

Laravel:

Route::group(array('prefix'=>'admin', function(){
    Route::get('/', ['as'=>'admin.main',function(){
        return view('main');
    }]);

    Route::get('/dashboard', ['as'=>'admin.dashboard',function(){
        return view('dashboard');
    }]);
});

我面临的问题是,我需要在2个地方声明路由路径。 一个在Angular,另一个在Laravel。 因此,每次添加新路线或更改路线时,都需要在2个地方工作。 随着应用的增长,这将变得乏味且难以维护。

无论如何,我只需要在一个地方设置路由URL,对两个地方都有效?

php angularjs laravel routes angular-ui-router
2个回答
0
投票

我假设您正在构建单页应用程序。 这意味着在服务器端(Laravel),您需要对所有GET请求使用相同的模板,例如

Route::group(['prefix' => 'admin'], function() {
    Route::get('(.*)', function() {
        return view('dashboard');
    });
});

在客户端(AngularJS)上,您正在按照有问题的方式进行路由。


顺便说一句,您在Laravel路由中使用了错误的语法,这是不正确的:

Route::get('/', ['as'=>'admin.main',function(){
}]);

这应该是这样的:

Route::get('/', ['as'=>'admin.main'],function(){
//                                 ^
});

0
投票

在Laravel 5.4中,我无法使用正则表达式来定义路由,如下所示:

Route::get('/account/(.*)', function() { return view('index'); });

相反,我必须使用参数并使用正则表达式来确保它捕获了所有路径:

Route::get('/account/{path?}', function() {
    return view('index');
})->with('path', '.*');
© www.soinside.com 2019 - 2024. All rights reserved.