2016-08-25 13 views
0

ドロップダウンボックスからの値を渡してng-repeatの昇順/降順のプロパティを調べたいとします。Angular JS ng-repeatの表形式データをソートするための値(真または偽)を渡す方法

"asdc"という変数を定義しましたが、その値はドロップダウンボックスで決まります。この変数は、テーブルを昇順または降順にソートするかどうかを決定する必要があります。変数は既にAngularJSコントローラで作成されていますので、ここに投稿しません。私は以下のコードを貼り付けています。このようには動作しません。私は何が欠けているのだろうかと思います。

これは並べ替えるテーブルです。

<tr ng-repeat="technology in technologies | limitTo: rowlimit | orderBy: sortby : adsc" > 
<td>{{technology.name | uppercase}}</td> 
</tr> 

これはドローダウンボックスです。 adscの値をtrueまたはfalseとして定義し、その値を "adsc"に渡します。コントローラでは

:文字列以外の何かに結合する

<select ng-model="adsc"> 
    <option value="true">Asc</option> 
    <option value="false">Dsc</option> 
</select> 
+0

ng-valueを使用します。そうでない場合、値は文字列 'true'または文字列 'false'です。両方とも真実です。 –

+0

これが正しい@JBNizetの場合は、これを回答として投稿する必要があります。 – Matthias

+0

@Matthiasあなたは正しいです。やります。 –

答えて

0

使用NG-オプションを考慮して

$scope.directions = [ 
    { 
    value: false, 
    label: 'Asc' 
    }, 
    { 
    value: true, 
    label: 'Desc' 
    } 
];  

<select name="direction" ng-model="adsc" 
     ng-options="direction.value as direction.label for direction in directions"> 
</select> 

ここでは、その使用を実証a plunkrです。

また、trueを渡すと、昇順でソートされますが、昇順ではありません。

+0

私は運が無かった。実際には、コード内の 'sortby'変数のために、' value = 'のみを使用し、うまく動作します(下記参照)。私は簡単に値を渡し、テクノロジー名で並べ替えることができます。しかし、昇順/降順の属性は、同じ方法で値を渡すことができないように見えます。 < Bonal

+0

申し訳ありませんが、私はドキュメントを誤解しています。トリックは、通常どおり、オプションを反復する代わりに、ng-optionsを使用することです。私は私の答えを修正した。 –

+0

はい。今回はうまくいった。答えをありがとう! – Bonal

関連する問題