स्ट्रिंग्स की सरणी पर ऑर्डरबाय फिल्टर कैसे काम करें?


85

यहां वह कोड है जो काम नहीं कर रहा है: डेमो: http://jsfiddle.net/8dt94/63/

<div ng-controller="MyCtrl">    
    <input type="text" ng-model="searchText" />
  <ul ng-repeat="strVal in arrVal|orderBy|filter:searchText" >
      <li>{{strVal}}</li>
  </ul>
</div>

var app=angular.module('myApp', []);
app.controller('MyCtrl', function ($scope,$filter) {
  $scope.arrVal = ['one','two','three','four','five','six'];  
});

मुझे नहीं लगता कि आपको अपने एनजी-रिपीट ऐरे में आदिम मूल्यों का उपयोग करना चाहिए। अगर यह काम नहीं करता है। ( jsfiddle.net/EGVwG )।
तोश

यह प्रश्न अभी भी एक चयन के एनजी-विकल्प एटर पर लागू होता है, जो स्ट्रिंग्स की एक सूची होनी चाहिए।
स्पेन ट्रेन

जवाबों:


248

आप एक विधि द्वारा ऑर्डर कर सकते हैं, ताकि आप .String विधि का उपयोग कर सकें

<ul ng-repeat="strVal in arrVal | orderBy:'toString()' | filter:searchText">

+1। इसके अतिरिक्त आप अंत तक "ट्रैक बाय" जोड़ सकते हैं: <ul ng-repeat = "strVal in arrVal: orderBy: 'toString () | फ़िल्टर: $ सूचकांक द्वारा सर्चटेक्स्ट ट्रैक">
Amy

9
महान समाधान, मुझे इस तरह की संख्याओं की एक सरणी की आवश्यकता थी, [2,5,3,1,6, 33]इसलिए इसके बजाय toString()मैंने एफ का इस्तेमाल किया valueOf()और यह सही काम किया। समाधान के लिए धन्यवाद।
ug_

यह मेरे लिए भी काम किया! किसी भी विचार क्यों यह चाल हालांकि काम करता है?
ईथन

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.