So, you have a lot of options on how you're going to handle this.
The specific methodology that you're looking to use is known in general as page templates, and in particular as partial views or HTML fragments, depending on the stack that you're using.
Angular has a few choices on how to handle this. I'm going to show you the one that I like, which leans on the UI-Router module. I like this option because of the amount of control that the UI-Router navigation model gives you on the development side.
UI-Router[
^]
In this case we're going to work backwards because it'll help show where some pitfalls can occur. I'm going to start with an HTML fragment that can be loaded into a view with an embedded controller.
partialOne.html
<div ng-controller="partialOneController">
<p>{{title}}</p>
</div>
<script type="text/javascript">
myApp.controller('partialOneController',['$scope',function($scope){
$scope.title = 'This controller is dynamically loaded, but could' +
'be assigned in the state definition.';
}]);
</script>
Next up let's define our Primary View (Master page for the Web-Form peeps).
index.html
<html ng-app="myApp">
<head><!--</head>
<body ng-controller="primaryViewController">
<!--
<header><span>I persist through navigation!</span></header>
<div ui-view="MainContent"><p>This text apperars until ui-sref is called!</p>
</div>
<footer><span>I persist through navigation!</span></footer>
</body>
</html>
Okay, now for our app. I know, this is overcomplicated, but this shows how to target a specific view container on the page, where you can do all sorts of fun stuff if you want. Using functions to provider route capabilities is pretty powerful.
myApp.js
var myApp = myApp || angular.module('myApp',['ui.router'])
.config(['$stateProvider', function($stateProvider){
$stateProvider
.state('navigate',{
url: '/:view',
views: {
'MainContent' : {
templateUrl: function($stateParams){
return $stateParams.view + '.html';
}
}
});
}]);
That's it. All that's left is to call the state, which you can do from a link or programatically.
To use a link, don't assign an href, use a ui-sref attribute instead. The link will look like this:
<a ui-sref="{{navigate({ view: 'partialOne' }) }}">Show PartialOne</a>
This is all a bit over-engineered to provide one fragment to one view, but as I'm going to guess that's not your ultimate use case, I figured I'd give you the flexible version up front.