これをより簡単に行うには、2 つのことを学ぶ必要があると思います。1 つは routeProviders、2 は ng-include です。
routeProvider を使用すると、さまざまな HTML の「パーシャル」への「トップ レベルのナビゲーション」が可能になり、基本的に URL をビューにマップできます。あまり複雑なことはまだ行っていませんが、別のレベルのナビゲーションまたはサブビューを処理する方法は、ng-include ディレクティブを使用することだと理解しています。
また、ページの読み込み時にモデルの値を復元するために、少しコードを使用しました ($location サービスを使用して、モデルのこのプロパティの URL に関する情報を取得し、ナビゲーション要素にいくつかのクラスを設定します)。現在のページを強調表示します)。
以下は、うまく機能するいくつかのプロジェクトで使用した完全な「シード」コードです。
var mainApp = angular.module("mainApp", []);
// mainApp.run(function($rootScope, $location, $anchorScroll, $routeParams) {
// //when the route is changed scroll to the proper element.
// $rootScope.$on('$routeChangeSuccess', function(newRoute, oldRoute) {
// if(document.documentElement.clientWidth>=600)
// return;
// $location.hash("contentArea");
// $anchorScroll();
// });
// });
mainApp.controller("NavigationCtrl", function ($scope, $location,$anchorScroll) {
$scope.currentPage = "home";
$scope.pages = [
{label:'Home', location:'home'},
{label:'Page2', location:'page2'}
];
$scope.gotoPage = function(item) {
$scope.currentPage = item.location;
$location.path("/"+item.location)
};
$scope.initialize = function() {
$scope.currentPage = $location.path().substring(1);
};
$scope.goHome = function() {
$scope.currentPage = "home";
$location.path("/home")
};
$scope.itemClass = function(item) {
return item.location === $scope.currentPage ? 'active' : undefined;
};
});
mainApp.config(function($routeProvider){
$routeProvider.
when("/", {templateUrl:'partials/home.html'}).
when("/home", {templateUrl:'partials/home.html'}).
when("/page2", {templateUrl:'partials/secondPage.html'}).
otherwise({redirectTo:"/"});
});
HTMLでは
<header>
<div id="headerRegion">
<a ng-click="goHome()">
<div id="logoWrapper">
<img src="images/logoBig.png" id="headerLogo" alt="Intellect-Tech Logo">
</div>
<div id="companyName">
Company name goes here
</div>
<div id="slogan">
<i>Slogan goes here</i>
</div>
</a>
<div class="clear"></div>
</div>
</header>
<nav ng-init="initialize()">
<div id="pointerContainer">
<img src="images/navPointer.png" id="navPointer" class="{{currentPage}}"/>
</div>
<div id="navText">
<ol>
<li ng-click="gotoPage(item)" ng-repeat="item in pages" ng-class="itemClass(item)">
{{item.label}}
</li>
</ol>
</div>
</nav>
これを github に投稿してリンクを取得したい場合は、とにかくそこに載せるつもりです。このコードは決して完璧ではありませんが、進行中の作業であり、頭を悩ませることなく一度にかなりの数のプロジェクトを開始するのに役立ちました.