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


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.