2014-11-23 51 views
0

当使用ngRoute与laravel时,我遇到了问题。与laravel一起使用Angularjs的无尽循环

routes.php文件:

App::missing(function($exception) 
{ 
    return File::get(public_path() . '/angular.html'); 
}); 

这里是我的angular.html(这是我使用ng-view):

<!doctype html> 
<html lang="ru" ng-app="app"> 
<head> 
    <meta charset="UTF-8"> 
    <title>Angular & Laravel</title> 
    <link rel="stylesheet" href="libs/bootstrap/dist/css/bootstrap.min.css"/> 
</head> 
<body> 
    <header> 
     <ul class="nav navbar-nav"> 
      <li><a href="/">Home</a></li> 
      <li><a href="/posts">Posts</a></li> 
     </ul> 
    </header> 

    <div class="container"> 
     <h2>Angular, hello!</h2> 
     <div ng-view></div> 
    </div> 

    <script type="text/javascript" src="libs/angular/angular.min.js"></script> 
    <script type="text/javascript" src="libs/angular-route/angular-route.min.js"></script> 
    <script type="text/javascript" src="js/app.js"></script> 
</body> 
</html> 

这里是我的app.js:

// define app 

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

// routes 

app.config(function($routeProvider) { 
    $routeProvider.when('/', { 
     templateUrl: 'views/home.html', 
     controller: 'HomeCtrl' 
    }).when('/posts', { 
     templateUrl: 'views/posts.html', 
     controller: 'firstCtrl' 
    }).otherwise({ 
     redirectTo: '/' 
    }); 
}); 

// controllers 

app.controller('HomeCtrl', function($scope) 
{ 
    $scope.name = 'Ebosher'; 
}); 

app.controller('firstCtrl', function($scope, $http) 
{ 
    $http.get('/api/posts').then(function(result) { 
     $scope.posts = result.data; 
    }); 
}); 

现在,当我访问http // project.local - 我的浏览器由于无限循环而挂起 - 它不断重复相同的文本无尽的时间。我的代码有什么问题?

回答

0

角度看起来没问题。它看起来像你正在使用404处理程序(App :: missing())来为你的角度服务。你真的不应该这样做(你现在可以明白为什么)。删除该处理程序(或使其成为实际的404处理程序),然后创建一个视图,其中包含控制器内部的角度和return View::make('angular.html');或路径的关闭。

发生了什么事是这样的:你的应用程序加载并找不到合适的路线。应用程序会以404的方式重定向您。角度加载并调用./api/posts,这会导致404 ...再次加载角度...