AngularJs + Laravel路由

时间:2013-10-10 16:28:52

标签: angularjs routing laravel

我想使用$ locationProvider.html5Mode(true)删除angularJs中的#hash;但这导致所有URL都通过angularJs路由。我如何设置它以便只有一些预定义的URL通过angularJs路由,而其余的仍然使用Laravel。

代码是:

    app.config(['$routeProvider', '$locationProvider',
        function($routeProvider, $locationProvider) {
            $routeProvider
            .when('/alls', {
                templateUrl: app.site_url + 'ang/index',
                controller: 'MainCtrl'
            })
            .when('/alls/page/:page', {
                templateUrl: app.site_url + 'ang/index',
                controller: 'MainCtrl'
            })
            .otherwise({
                redirectTo: '/alls'
            });
            $locationProvider.html5Mode(true);
        }
    ]);

因此,如果它不是/ alls或/ alls / page /,Laravel应该处理路由。

1 个答案:

答案 0 :(得分:3)

我尝试使用<base href=".">,如:http://docs.angularjs.org/guide/dev_guide.services。$ location所述。但它不起作用。 我终于开始工作了。这是解决方案:

 app.config(['$routeProvider', '$locationProvider',
    function($routeProvider, $locationProvider) {
        $routeProvider
        .when('/alls', {
            templateUrl: app.site_url + 'ang/index',
            controller: 'MainCtrl'
        })
        .when('/alls/page/:page', {
            templateUrl: app.site_url + 'ang/index',
            controller: 'MainCtrl'
        })
        .otherwise({
            templateUrl: app.site_url + 'ang/index',
             controller: function(){
                window.location.href = window.location.href;
            }               
        });           
        $locationProvider.html5Mode(true);
    }
]);

希望它会帮助别人。