2013-05-09 13 views
30

मेरा सरणी है: BS। इसकी संरचना है:आदेश उम्मीद के अनुसार काम नहीं कर रहा है: Angularjs

Array[317] 
0: Object 
    $$hashKey: "022" 
    name: "Los Angeles Comm." 
. 
. 
. 
.. 

बीएस एक सरणी है। प्रत्येक मान नाम के दायर के साथ एक JSON ऑब्जेक्ट है।

मैं बीएस के सभी मूल्यों को उनके नाम के अनुसार क्रमबद्ध करना चाहता हूं। मैं कोशिश कर रहा हूँ:

<option ng-repeat="item in BS | orderBy:item.name" value="{{item.name}}">{{item.name}}</option> 

मैं भी कोशिश की है: orderBy:name और orderBy:item[name]। कुछ भी काम नहीं करता है। यह क्यों काम नहीं कर रहा है और सही कोड क्या है?

उत्तर

79

एचटीएमएल

नीचे
<!DOCTYPE html> 
<html ng-app="app"> 
<head> 
    <title></title> 
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.5/angular.min.js"></script> 
</head> 
<body> 
    <div ng-controller="item"> 
     <ul> 
      <li ng-repeat="item in items|orderBy:'name'"> 
       {{item.name}} 
      </li> 
     </ul> 
    </div> 
    <script> 
     var AppModule = angular.module('app', []); 
     function item($scope) { 
      $scope.items = [{ name: 'tur' }, { name: 'abc' }, { name: 'xyx' }]; 

     } 
    </script> 
</body> 
</html> 
+11

एक बात यहाँ ध्यान दें कि यदि आप द्वारा --- 'वाक्य रचना' ट्रैक का उपयोग, अपने orderBy अब कार्य नहीं करेगा है पर एक नज़र डालें। – dmackerman

+42

@dmackerman, 'द्वारा ट्रैक --- हमेशा फिल्टर के दाईं ओर, संपूर्ण अभिव्यक्ति के बहुत अंत में होना चाहिए। फिर 'ऑर्डर बी' अपेक्षित के रूप में काम करता है। – nilskp

+0

@nilskp, क्या कोई दस्तावेज है जो बताता है कि 'ट्रैक ट्रैक' अंत में क्यों होना चाहिए? मैं सोच रहा हूं कि अगर ट्रैक अवांछित व्यवहार का कारण बनता है तो अंत में अन्य के अलावा 'ट्रैक बाय' की अनुमति क्यों दी जाती है। – adam0101

संबंधित मुद्दे