2016-09-06 5 views
0

私が祝福してくれた巨大なオブジェクト配列は、人にやさしい名前ではなく、そのコードでソートされています。フレンドリーに表示したい。角:選択のオプションを並べ替える

portsService:

var _getPorts = function(){ 
     return _portList; 
    } 

    var _portList = [{ 
      "code": "0101", 
      "portOfEntry": "Portland, ME" 
     }, { 
      "code": "0102", 
      "portOfEntry": "Bangor, ME" 
     }, { 
      "code": "0103", 
      "portOfEntry": "Eastport, ME" 
     }, { 
      "code": "0104", 
      "portOfEntry": "Jackman, ME" 
     }, ... 

コントローラー:

vm.getPortsSelect = function() { 
     vm.ports = portsService.getPorts(); 
    }; 

ビュー:

<select 
     ng-model="adminManifestVm.Manifest.usPortOfArrival" 
     ng-options="port.code as port.portOfEntry for port in adminManifestVm.ports" 
     name="usPortOfArrival" 
     class="form-control input-inline input-medium" 
     required> 
    <option value=""></option> 
</select> 

plentがあります。オブジェクト配列を手動でソートする方法があります。角がありますか?

答えて

1

あなただけはい、角度の方法はfilterを使用することですorderBy

ng-options="port.code as port.portOfEntry for port in adminManifestVm.ports | orderBy:'code'" 

DEMO APP

+0

なぜ投票が下りますか? – Sajeetharan

+0

ああ!私はそれを試みたが、一重引用符を逃した! – DaveC426913

+1

はい。ありがとうございました。答えとしてマーク。 – DaveC426913

1

フィルタを使用することができます。この場合、そのようなorderByフィルタ:あなたが見ることができるように

{{ orderBy_expression | orderBy : expression : reverse : comparator}}

が、逆に順序を逆にすることも可能である。ここでは

<select ng-model="adminManifestVm.Manifest.usPortOfArrival" 
    ng-options="port.code as port.portOfEntry for port in adminManifestVm.ports | orderBy: 'code'" 
    name="usPortOfArrival" 
    class="form-control input-inline input-medium" 
    required> 
    <option value=""></option> 
</select> 

orderByドキュメントから使用方法はブール値。また、昇順または降順のソート方向を制御するために、+または - の接頭辞を付けることもできます。たとえば、この例では '+ code'または '-code'です。

+0

なぜダウン投票? :/ – cnorthfield