अलग दृश्य में फ़िल्टर के साथ कोणीय

मेरे पास कोणीय और कोणीय-यूआई राउटर से संबंधित एक प्रश्न है। मैं बूटस्ट्रैप नेविबार में एक फ़िल्टर रखना चाहता हूं जो वर्तमान मार्ग के आधार पर भिन्न हो सकता है। मैंने कोणीय-यूआई राउटर के साथ इस व्यवहार को लागू करने की कोशिश की है, लेकिन यूई-राउटर एकाधिक विचारों में एक ही नियंत्रक को साझा करने का समर्थन नहीं करता है। उनके दस्तावेज़ में इस विषय पर स्पर्श करें। देखें: https://github.com/angular-ui/ui -router/wiki/एकाधिक-नाम-दृश्य

I have created a plunker with the desired behaviour: http://plnkr.co/edit/W0UgeW

मेरे प्रश्न पर: क्या कोई तरीका है कि मैं इस व्यवहार को पूरा कर सकता हूं? मैं necissarly Angular-ui राउटर के साथ ऐसा नहीं करना चाहता, अगर यह एक्सटेंशन का उपयोग किए बिना संभव है तो मैं इसे इस तरह से करना पसंद करूंगा।

धन्यवाद,

बार्ट

1
मुझे लगता है कि आपको कोणीय पब/उप विधियों का उपयोग करना होगा। शायद नेविबार नियंत्रक और मार्ग के नियंत्रक के बीच संवाद करने के लिए एक सेवा का निर्माण करना सबसे अच्छा तरीका होगा।
जोड़ा लेखक Cory Silva, स्रोत

1 उत्तर

आप कस्टम फ़िल्टर बना सकते हैं जैसे:

 myapp.filter('myfilter', function() {
   return function( items, combo) {
    var filtered = [];
     console.log(items, combo);
    angular.forEach(items, function(item) {
       if(item.name == combo){
         filtered.push(item);
       }

    });

    return filtered;
  };
});

अब देखने के लिए कॉम्बो विकल्प पास करने के लिए हम लिख सकते हैं:

 $rootScope.theFilter = '';

हमारी तालिका इस तरह दिखेगी:

<table id="searchTextResults">
  <tr><th>Name</th><th>Phone</th></tr>
  <tr ng-repeat="friend in friends | myfilter:theFilter">
    <td>{{friend.name}}</td>
    <td>{{friend.phone}}</td>
  </tr>
</table>

See Demo Plunker

1
जोड़ा
आप इसके बजाय सेवा में भी स्टोर कर सकते हैं
जोड़ा लेखक Maxim Shoustin, स्रोत
धन्यवाद। मैंने आपका जवाब स्वीकार कर लिया है, लेकिन इसके लिए $ rootScope का उपयोग करना पसंद नहीं करेंगे। अभी तक मैं इसे लागू करूँगा जैसा कि आपने सुझाव दिया है जब तक कि मुझे बेहतर तरीका न मिल जाए।
जोड़ा लेखक Bart Van Remortele, स्रोत