次の例に基づいたメニューがあります。
<nav data-ng-controller="menuContrl" class="menuItem">
<a data-ng-class='{active:isActive("/{{item.path}}")}' data-ng-repeat="item in menu" href="#/{{item.path}}">
<span>{{item.title}}</span>
</a>
</nav>
item は、メニュー項目情報を含むオブジェクトです。ディレクティブとコントローラーの JavaScript コードは次のとおりです。
var app = angular.module("coolApp",[]);
function menuContrl($scope,$location){
$scope.menu=menu;
$scope.isActive = function(path){
return ($location.path()==path)
}
}
問題は、ページのレンダリング中に 1 回だけにng-class
設定class
されることですが、メニュー項目をクリックしても何も起こりません。active
これは、メニュー自体がリロードされておらず、内部のデータを変更しただけだからだと思います<div>
。では、ページ全体をリロードせずに機能させるにはどうすればよいですか?