当我在不同的位置上使用我的$ scope函数时,它会返回相同的结果。
使用Javascript:
$scope.isActive = function(d) {
var res = false;
if(typeof d.route !== 'undefined') {
res = d.route === $location.path();
} else if(typeof d.path !== 'undefined') {
var regexp = new RegExp('^' + d.path.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&") + '.*', 'g');
res = $location.path().match(regexp);
}
return res;
};
HTML的来源:
<li class="dropdown" ng-class="{active: isActive({path: '/setup'})}">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
<i class="fa fa-wrench fa-3x"></i><br/>
Einstellungen <b class="caret"></b></a>
<ul class="dropdown-menu">
<li ng-class="{active: isActive({route: '/setup/systemkonfiguration'})}">
<a href="#/setup/systemkonfiguration">
<i class="fa fa-fw fa-hand-o-up fa-lg"></i>
Aktuelle Systemkonfiguration</a>
</li>
<li class="divider"></li>
<li role="presentation" class="dropdown-header">Stammdaten</li>
<li ng-class="{active: isActive({route: '/setup/werkzeuge'})}">
<a href="#/setup/werkzeuge">
<i class="fa fa-fw fa-sitemap fa-lg"></i>
Werkzeuge</a>
</li>
问题是, isActive 功能完全返回TRUE! “Einstellungen”下的所有项目都会获得活跃的课程。
但是,为什么?