3

由于 a ,我想显示列表的元素,ngSwitch但我不知道如何处理 a ngRepeat。我已经开始在没有列表的情况下进行操作,只是为了了解其ngSwitch工作原理并向您展示我想要做什么,这里有一个 jsFiddle 可以帮助您理解:jdFiffle 1

然后,我尝试使用一个列表,ngRepeat但是,无论我尝试做什么,它都不起作用。这是第二个 jsFiddle,这次使用了一个列表:jsFiddle 2

ngClick当他们在里面时,它似乎ngSwitch不起作用ngRepeat......我该怎么做才能让事情正常进行?提前致谢!

4

1 回答 1

11

一些问题:

  1. 在处理角度指令时,您通常不需要使用{{...}}语法,只需使用实际值即可。所以而不是:

    data-ng-click="sw='{{test.name}}'"
    

    利用:

    data-ng-click="sw = test.name"
    

    (请参阅下一点,了解为什么这还不够)

  2. ng-repeat使用它自己的范围和包含,所以上面将设置sw在错误的范围内,使用:

    data-ng-click="$parent.sw = test.name"
    
  3. 你不能用 来构建ng-switch-whenng-repeat试试ng-show/hide吧:

    <div ng-repeat="test in tests" ng-show="sw == test.name">
    

演示:http: //jsbin.com/uxobot/1/


但总而言之,我认为ng-switch/ng-repeat第二个 div 没有必要。以下具有相同的效果,并且可能更具语义:

<div ng-controller="MyCtrl">
  <div class="click">
    <div ng-repeat="test in tests" data-ng-click="$parent.active = test">
      {{test.name}}
    </div>
  </div>

  <div class="switch">
    {{active.text}}
  </div>
</div>

演示:http: //jsbin.com/elufow/1/

于 2013-07-17T08:59:34.797 回答