2015-07-10 39 views
1

我的标记:标签不存储范围瓦尔

<li active="active.search"><a href="#" ng-click="activate('search')">search</a></li> 
<li active="active.lists"><a href="#" ng-click="activate('lists')">lists</a></li> 
<li active="active.find"><a href="#" ng-click="activate('find')">find</a></li> 

我的代码:

$scope.active = { 
      search: true 
     }; 

$scope.activate = function(li) { 
     $scope.active = {}; 
     $scope.active[li] = true; 
    } 

首先 - 我已经设置为突出显示的项目,并没有真正得到默认但是强调,他们在点击时工作。

其次 - 我想用的是居然主动通过:

if ($scope.active[0].search === true) { 
... some values 
} 

这是不正确的?因为我似乎无法完成这项工作。

+2

should ng-click =“active('find')”> be ng-click =“activate('find')”>? – dbarnes

+0

对不起的拼写错误,将更正 - 谢谢 – Poiro

回答

0

active不是一个角指令,所以你需要封闭变量尖括号{{ }}

active="{{active.search}}" 

的角度来分析它。

+0

我仍然不确定 - 因为我的条件里面if($ scope.active [0] .search === true){似乎没有解析,有没有其他的方式来访问是否像上面那样选择了哪个li? – Poiro

+0

是的,你需要使用'$ scope.active.search === true'。 'active'是一个对象,而不是一个数组。 http://jsfiddle.net/0mj2cpgr/ – Jan

+0

但我建议你采取更多的角度来看这个,比如:http://jsfiddle.net/3uc9g8s2/ – Jan