There are a couple of methods achieving the goal, but you do NOT use blade any more. Here I am just explaining the easiest way.
1. create a index.php (not index.blade.php), in your routes.php, you have:
Route::get('/', function()
{
return View::make('index');
});
It will return you the index page.
In index.php, please include
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.8/angular.min.js"></script>
<script src="http://code.angularjs.org/1.2.3/angular-route.js"></script>
or your local dependencies.
In the public folder, you can create folder called "js", another folder called "templates".
In the "js" file, creates your "app.js", "controller.js", and etc. (Don't forget to include them in your index.php)
In the "templates" folder, you will create your template html. In your given example, they are "home.html", "about.html", "contact.html"
In the index page, you do the angular routing here.
app.js:
var app = angular.module('app', [ 'ngRoute' ]);
app.config(function($routeProvider) {
$routeProvider
.when('/', {
templateUrl : 'templates/home.html',
controller : 'mainController'
})
.when('/about', {
templateUrl : 'templates/about.html',
controller : 'aboutController'
})
.when('/contact', {
templateUrl : 'templates/contact.html',
controller : 'contactController'
});
});