0

を使用していくつかのコンテンツを表示しようとしていましたng-switch:

<div ng-app ng-controller="ctrl" >
    <div ng-repeat="list in statusList">
      <p ng-switch on="list">
        <span ng-switch-when="incorrect"> 
        i am incorrect
        </span>
        <span ng-switch-when="stuff">
        i am  stuff
        </span>
        <span ng-switch-when="wrong">
        i am  wrong
        </span>
        <span ng-switch-default>
        Correct
        </span>
      </p>
    </div>
</div>

コントローラ

function ctrl($scope){
    $scope.statusList=["incorrect","wrong","stuff"];
}

次のような出力を取得します。

私は間違っています

私は間違っている

私はものです

しかし、指定した順序で表示するには出力が必要です。すなわち

私は間違ってい
ます 私はものです
私は間違っています

これを行うにはどうすればよいですか。1 つの重要な点は、コントローラーで順序を変更しないことです。

4

2 に答える 2

0

ng-repeat反復はリストの順序を使用します。必要に応じてリストを並べ替えるカスタム フィルターを定義するか、別の方法を使用できます。

'contains' フィルターを定義しtrue、配列に要素が含まれているかどうかを返します。

.filter('contains', [function() {
    return function(array, element) {
          return array.indexOf(element) > -1;
    }
}])

テンプレートに使用ng-ifsします (繰り返しなし):

<div ng-if="statusList | contains : 'incorrect'">i am incorrect</div>
<div ng-if="statusList | contains : 'stuff'">i am stuff</div>
<div ng-if="statusList | contains : 'wrong'">i am wrong</div>

このようにして、必要な順序を定義できます。

Plunkr: http://plnkr.co/edit/yaYodJAVCVQ55KbOrf3A?p=preview

于 2015-05-16T08:24:19.537 に答える