2015-01-28 5 views
0

난과 레벨 3의 카테고리를 선택하면 클래스는하지만 내가 필요 "고양이"스타일 "활성"클래스 리튬 요소에 있지만 추가 한 깊이 레벨 3 그래서 모든 수준과 범주의 목록을 가지고 단서가 ng - 클래스 modlue에 여러 조건을 추가하는 방법이 없어 내가이 방법과 다른 방법을 시도했지만 행운과 함께 그냥 클릭 링크의 리튬 요소에 활성 클래스를 추가 할 필요가 ??NG 수준의 여러 수준의 조건

<li ng-repeat="category in categories track by category.id" ng-class="{1: 'root', 2: 'sub', 3: 'cat'}[category.depth] || {cActive: 'active'}[category.id]"> 
    <a ng-click="setCategory(category.id)">{{category.title}}</a> 
</li> 

여기 내 범위 기능

$scope.setCategory = function ($category.id) { 
    $scope.cActive = $category.id; 
} 

답변

2

ng-class 인 객체를 기대하고, 어떤 당신의 구문이하고있는 것은 || 연산자로 두 문자열을 병합을 시도하고 있습니다. 그것은 작동하지 않습니다. 제대로 ng-class을 사용할 수있는 방법은 다음과

은 다음과 같습니다

ng-class="{root: category.depth === 1, 
      sub: category.depth === 2, 
      cat: category.depth === 3, 
      active: cActive === category.id}" 
+0

안녕이 너무가 활성화 카테고리로 작동하지만 난 그냥 하나 개의 값 진정한 얻고 다른 하나는 내가 2 개 값을 필요로 거짓을 시도 빠른 답장을 보내 주셔서 감사합니다 "** 고양이 활성 **"을 얻는 것은 사실이다. 나는 단지 "** 활성 **"을 얻는다. 다른 값들은 무시된다. – NeoNe

+1

@NeoNe'category.depth'의 실제 유형은 무엇입니까? 그것은 문자열인가, 숫자인가? – JLRishe

+0

왜 그것이 작동하지 않는게 그게 내가 숫자에 '1'을 추가 한 문자열이고 이제는 당신에게 전리품을 주셔서 감사합니다 :) :) :) – NeoNe