У меня есть меню, основанное на следующем примере:
<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)
}
}
Проблема заключается в том, что ng-class
устанавливает class
в active
только один раз во время рендеринга страницы, но когда вы нажимаете на пункты меню, ничего не происходит. Я полагаю, это связано с тем, что само меню не перезагружается, и я просто изменяю данные внутри <div>
. Итак, как я могу заставить его работать без перезагрузки всей страницы?