使用ngRoute和laravel时遇到问题。
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 :(得分:0)
角度看起来还不错。看起来你正在使用404处理程序(App :: missing())来提供角度。你真的不应该这样做(你现在可以看到原因)。删除该处理程序(或使其成为一个真正的404处理程序),然后只需从控制器内部或路径的闭包中创建一个带有角度的视图和return View::make('angular.html');
。
正在发生的事情是:您的应用加载并且无法找到正确的路线。应用程序重定向您的方式为404.角度加载并调用./api/posts导致404 ....再次加载角度......