AngularJS' ng-switch-when'用一个表达

时间:2016-06-19 02:30:14

标签: html angularjs angularjs-directive angularjs-ng-repeat angularjs-ng-switch

我知道ng-switch-when需要一个值,但我用它创建了ng-repeat

我需要做些什么来工作?:

<div ng-switch-when="2" ng-controller="pages as page" ng-switch="page.get()">
    <div ng-repeat="i in [1,2,3,4,5]">
        <div ng-switch-when="{{ i }}">
            {{i}}
        </div>
    </div>
    <button ng-hide="page.is(1)" ng-click="page.prev()" class="btn btn-info">Previous Page</button>
    <button ng-hide="page.is(5)" ng-click="page.next()" class="btn btn-info">Next Page</button>
    <br>
    <label>Page {{page.get()}}</label>
</div>

我希望在值为&#34; i&#34;时显示div,但angularjs不接受。

  

我不知道这是否会产生很大影响,但我在ng-switch内使用了div,而ng-switch正在显示另一个ng-repeat

提前致谢

  

编辑1:   我想创建一个{{1}} 5页,它们在ng-switch中。   当重复&#34; i&#34; value是1,我希望当切换值等于1时显示它创建的页面,以及其余的那个

2 个答案:

答案 0 :(得分:0)

尝试这样的事情:

<div ng-controller="pages as page" ng-switch="page.get()">
    <div ng-repeat="i in [1,2,3,4,5]">
      <div ng-switch = "i">
        <div ng-switch-when = "1">
          1
        </div>
        <div ng-switch-when = "2">
          2
        </div>
        <div ng-switch-when = "3">
          3
        </div>
        <div ng-switch-when = "4">
          4
        </div>
        <div ng-switch-when = "5">
          5
        </div>
      </div>
    </div>
    <button ng-hide="page.is(1)" ng-click="page.prev()" class="btn btn-info">Previous Page</button>
    <button ng-hide="page.is(5)" ng-click="page.next()" class="btn btn-info">Next Page</button>
    <br>
    <label>Page {{page.get()}}</label>
</div>

答案 1 :(得分:0)

简单地说:

你不能。

来自the docs

  

请注意,要匹配的属性值不能是表达式。它们被解释为要匹配的文字字符串值。

您可以采取以下措施ng-show来实现相同的结果:

<div ng-repeat="i in [1,2,3,4,5]">
    <div ng-show="page.get() === i">
        {{i}}
    </div>
</div>