【问题标题】:ng-switch inside ng-repeat Angularjsng-repeat Angularjs 中的 ng-switch
【发布时间】:2014-12-06 01:26:03
【问题描述】:

我有疑问如何在 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}}"

示例图片

【问题讨论】:

    标签: javascript angularjs angularjs-ng-repeat ng-repeat ng-switch


    【解决方案1】:

    来自ng-switchdocumentation

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

    考虑改用ng-if

    <div class="animate-switch"  ng-if="item.filter === 'music'">
      filter equals 'music'
    </div>
    

    【讨论】:

    • 是的,很好的解决方案,但我想从 $scope 动态填充我想将该音乐作为过滤器填充 ..into 元素属性,所以我不需要手动输入每个“音乐”, “剧院”等...
    • 我不明白你在说什么或想做什么。 “作为价值”在哪里?我假设(上面的答案)你试图在ng-switch-when="music" 时显示该部分
    • 是的,但我想填写 ng-repeat... 那 ng-switch-when = "{{item.filter}}"
    • 我正在使用菜单作为向下滑动该子菜单的切换按钮......并使用该 ng-swith-when="music" 我在该菜单下切换新菜单。你看上面的子菜单就是我如何做动态的例子
    • ps看上图
    猜你喜欢
    • 2013-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-22
    • 2017-03-27
    • 2014-06-23
    • 2023-03-19
    相关资源
    最近更新 更多