কীভাবে অর্ডারবাই ফিল্টারটি স্ট্রিংগুলির অ্যারেতে কাজ করবেন?


86

এখানে কোডটি যা কাজ করছে না: ডেমো: 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

আপনি কোনও পদ্ধতির মাধ্যমে অর্ডার করতে পারেন, যাতে আপনি টস্ট্রিং পদ্ধতিটি ব্যবহার করতে পারেন

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

+1 অতিরিক্ত হিসাবে আপনি শেষের দিকে "ট্র্যাক বাই" যুক্ত করতে পারেন: <ul ng-repeat = "আর্টওয়ালে স্ট্রওয়াল | অর্ডার বাই: 'টুস্ট্রিং ()' | ফিল্টার: সন্ধানের ট্র্যাকটি $ সূচক">
এমি

9
দুর্দান্ত সমাধান, আমার এই ধরণের সংখ্যার অ্যারে প্রয়োজন ছিল [2,5,3,1,6, 33]তাই পরিবর্তে toString()আমি ব্যবহার করেছি valueOf()এবং এটি নিখুঁতভাবে কাজ করেছে। সমাধানের জন্য ধন্যবাদ।
ug_

এটি আমার জন্যও কাজ করেছিল! এই কৌশলটি কেন কাজ করে কোনও ধারণা?
ইলেথান

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.