【问题标题】:Laravel - Angular RoutesLaravel - 角度路线
【发布时间】:2015-08-31 13:48:31
【问题描述】:

我正在尝试将 Angular 与 Laravel 5 集成,但无法获取显示索引文件以外页面内容的路由。

它没有在 .when() 下拾取路由,因为我可以更改 templateURL 并且它没有效果。

文件目录如下

public_html --views app.js

App.js

var adminApp = angular.module('adminApp', ['ngRoute']);

// set the routes
adminApp.config(function($routeProvider,$locationProvider) {
    $routeProvider

        // route for the home page
        .when('/', {
            templateUrl : 'views/admin/index.html',
            controller  : 'AdminController'
        })

        // route for the contact page
        .when('/home', {
            templateUrl : 'views/admin/home.html',
            controller  : 'AdminHomeController'
        })

        .when('/sessions', {
            templateUrl : 'views/admin/sessions.html',
            controller  : 'AdminSessionController'
        });

        // use the HTML5 History API
        $locationProvider.html5Mode(true);
});



// create the controller and inject Angular's $scope
adminApp.controller('AdminController', function($scope) {

    // create a message to display in our view
    $scope.message = 'This is the admin page!';
});

// create the controller and inject Angular's $scope
adminApp.controller('AdminHomeController', function($scope) {

    // create a message to display in our view
    $scope.message = 'This is the home page!';
});    

// create the controller and inject Angular's $scope
adminApp.controller('AdminSessionController', function($scope) {

    // create a message to display in our view
    $scope.message = 'This is session page!';
}); 

索引.html

<html ng-app="adminApp">
<html>
    <head>

        <base href="/">
    <!-- Application Dependencies -->

        <!-- CSS -->
    <link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.1.0/css/bootstrap.min.css">
    <link rel="stylesheet" href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.min.css">
    <!-- JS -->


    </head>

    <body ng-controller="AdminController">

    <div class="container">
    <nav class="navbar navbar-default">
  <div class="container-fluid">
    <div class="navbar-header">
      <a class="navbar-brand" href="#">WebSiteName</a>
    </div>
    <div>
      <ul class="nav navbar-nav">
        <li><a href="access/admin"> Base </a></li>
        <li><a href="access/admin/home"> Home </a></li>
        <li><a href="access/admin/sessions"> Sessions </a></li>
      </ul>
    </div>
  </div>
</nav>

            <div ng-view=""></div>
      </div>
    </body>

    <!-- Application Dependencies -->
    <script type="text/javascript" src="/bower_components/angular/angular.js"></script>
    <script type="text/javascript" src="/bower_components/angular-route/angular-route.js"></script>
    <script type="text/javascript" src="/bower_components/jquery/dist/jquery.js"></script>
    <script type="text/javascript" src="/bower_components/bootstrap/dist/js/bootstrap.js"></script>
    <script type="text/javascript" src="/bower_components/angular-bootstrap/ui-bootstrap.js"></script>
    <script type="text/javascript" src="/bower_components/angular-bootstrap/ui-bootstrap-tpls.js"></script>
    <script type="text/javascript" src="/bower_components/angular-resource/angular-resource.js"></script>
    <script type="text/javascript" src="/bower_components/moment/moment.js"></script>

    <!-- Application Scripts -->

    <script type="text/javascript" src="/app.js"></script>

</html>

Laravel 路线

    Route::group(['prefix' => 'access/admin'], function () {


    /* Angular routes*/ 

    Route::any('{path?}', function()
    {
        return File::get('views/admin/index.html');
    })->where("path", ".+");

谢谢

【问题讨论】:

    标签: php angularjs laravel


    【解决方案1】:

    我有类似的问题。我将 app\Exceptions\Handler.php 中的渲染函数修改为

    public function render($request, Exception $e)
        {
            if ($e instanceof \Symfony\Component\HttpKernel\Exception\NotFoundHttpException)
            {
                return response()->view('index');
            }
            return parent::render($request, $e);
        }
    

    并在 resources\views 文件夹中创建了一个 index.blade.php 视图,就像

    <?php
    include public_path().'/views/index.html';
    

    它包含所有的角度逻辑。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-01
      • 1970-01-01
      • 2017-06-06
      • 1970-01-01
      • 1970-01-01
      • 2017-09-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多