1

我有疑问如何在 ng-repeat 中使用 ng-switch 并使用范围进行开关?

例子 :

 <div ng-repeat="item in submenu">
            <div class="animate-switch"  ng-switch-when="{{item.filter}}">
                <div class="navbar navbar-default navbar-static-top {{item.filter}}">
                    <div  class="navbar-collapse collapse" id="navbar-{{item.filter}}">
                        <ul class="nav navbar-nav subnav">
                            <li ng-repeat="subitem in item.sub" class="items"  >
                                <a ng-href="{{subitem.link}}" class="{{selected }}" ng-click="selectfiltersub(subitem.filter)">{{item.name}}</a>
                            </li>
                        </ul>
                    </div>

                </div>
            </div>
        </div>

$scope.子菜单:

 $scope.submenu =[{
            name:'Glasba',
            filter:'music',
            sub:[{
                name:'Koncerti',
                filter:'Concerts'
            },{
                name:'Klasika',
                filter:'Clasic'
            },{
                name:'Elektronika',
                filter:'Elektro'
            },{
                name:'Indy',
                filter:'Indy'
            },{
                name:'Teater',
                filter:'Theater'
            }]
        }]

所以问题出在 ng-switch-when = "{{item.filter}}" <-- 无法识别。输出与音乐的代码 ng-swith-when="{{item.filter}}" 相同。我能做些什么 ?谢谢回答!

示例图片在此处输入图像描述<--upper 是菜单,udner 50px 高度是子菜单,现在没有内容...

4

1 回答 1

2

ng-switch 文档

请注意,要匹配的属性值不能是表达式。它们被解释为要匹配的文字字符串值。例如,ng-switch-when="someVal"将匹配字符串"someVal"而不是表达式的值$scope.someVal

考虑改用ng-if

<div class="animate-switch"  ng-if="item.filter === 'music'">
  filter equals 'music'
</div>
于 2014-12-06T01:55:50.577 回答