2015-05-20 8 views
9

आधिकारिक वेबसाइट पर ui-grid उदाहरण (http://ui-grid.info/docs/#/tutorial/209_grouping) से निकालें एकत्रीकरण मेनू आइटम एक समूह सुविधा है, जो इस तरह दिखता है प्रस्तुत करता है कॉलम मेनू में Aggregate वाले (गिनती, योग, अधिकतम, न्यूनतम, औसत) नहीं है और मुझे उन्हें हटाने के लिए कोई रास्ता नहीं मिल सका।AngularJS ui ग्रिड मेनू

मैंने जिस समाधान का प्रयास किया है, वह समूहिंग कॉलमबिल्डर के लिए सजावट प्रदान करके uiGridGroupingService को ओवरराइड कर रहा था, लेकिन सेवा बिल्कुल हल नहीं हुई है और मैं यह सोचने में मदद नहीं कर सकता कि यह प्राप्त करने का एक आसान तरीका है या नहीं।

क्या किसी को इस समस्या के लिए किसी भी समाधान के बारे में पता है?

+0

केवल एक चीज मैं के बारे में पता कर रहा हूँ कि ui ग्रिड वास्तव में लचीला नहीं है एटीएम। मैंने इसका इस्तेमाल किया और मैंने यह समझने की कोशिश की कि "पिन दाएं" दिखाए बिना "पिन बाएं" फ़ंक्शन को कैसे जोड़ा जाए (मेरे क्लाइंट द्वारा पूछा गया) ... और ऐसा करने का कोई तरीका नहीं है। मुझे यकीन है कि यह आपकी समस्या के लिए एक ही है। आपको उनके गिटूब पर कोई समस्या पोस्ट करनी चाहिए। – Okazari

+0

मुझे एक ही समस्या है –

उत्तर

3

सजावट दृष्टिकोण शायद इस मामले में सबसे अच्छा तरीका है। कॉलम मेनू से इसे हटाने के लिए कोई कॉन्फ़िगरेशन विकल्प नहीं है।

पीएस: सजावटी केवल कुल वस्तुओं को हटाने के लिए दिखाया गया है।

सजावटी दृष्टिकोण के साथ एक कामकाजी plnkr यहां है।

http://plnkr.co/edit/nzBeqbmEVUwmZF0qgyd6?p=preview

app.config(function($provide){ 
    $provide.decorator('uiGridGroupingService', function ($delegate,i18nService,gridUtil) { 

     $delegate.groupingColumnBuilder = function (colDef, col, gridOptions) { 

      if (colDef.enableGrouping === false){ 
      return; 
      } 

      if (typeof(col.grouping) === 'undefined' && typeof(colDef.grouping) !== 'undefined') { 
      col.grouping = angular.copy(colDef.grouping); 
      } else if (typeof(col.grouping) === 'undefined'){ 
      col.grouping = {}; 
      } 

      if (typeof(col.grouping) !== 'undefined' && typeof(col.grouping.groupPriority) !== undefined && col.grouping.groupPriority >= 0){ 
      col.suppressRemoveSort = true; 
      } 

      col.groupingSuppressAggregationText = colDef.groupingSuppressAggregationText === true; 

      var groupColumn = { 
      name: 'ui.grid.grouping.group', 
      title: i18nService.get().grouping.group, 
      icon: 'ui-grid-icon-indent-right', 
      shown: function() { 
       return typeof(this.context.col.grouping) === 'undefined' || 
        typeof(this.context.col.grouping.groupPriority) === 'undefined' || 
        this.context.col.grouping.groupPriority < 0; 
      }, 
      action: function() { 
       service.groupColumn(this.context.col.grid, this.context.col); 
      } 
      }; 

      var ungroupColumn = { 
      name: 'ui.grid.grouping.ungroup', 
      title: i18nService.get().grouping.ungroup, 
      icon: 'ui-grid-icon-indent-left', 
      shown: function() { 
       return typeof(this.context.col.grouping) !== 'undefined' && 
        typeof(this.context.col.grouping.groupPriority) !== 'undefined' && 
        this.context.col.grouping.groupPriority >= 0; 
      }, 
      action: function() { 
       service.ungroupColumn(this.context.col.grid, this.context.col); 
      } 
      }; 



      if (!gridUtil.arrayContainsObjectWithProperty(col.menuItems, 'name', 'ui.grid.grouping.group')) { 
      col.menuItems.push(groupColumn); 
      } 

      if (!gridUtil.arrayContainsObjectWithProperty(col.menuItems, 'name', 'ui.grid.grouping.ungroup')) { 
      col.menuItems.push(ungroupColumn); 
      } 
     } 
     return $delegate; 
    }) 
}); 
+0

धन्यवाद, कथिर! यह एक बहुत अच्छा प्रारंभिक बिंदु है। दुर्भाग्यवश, ऐसा लगता है कि समूह मेनू आइटम कार्यक्षमता अब काम नहीं करती है, क्योंकि यह "सेवा" कौन सा हल नहीं कर सकती है। क्या आप इसे इंजेक्शन देने के तरीके के बारे में जानते हैं? –

+0

ओह, यह $ प्रतिनिधि के सेवा संदर्भ को बदलने जितना आसान था, जो समझ में आता है क्योंकि यह उदाहरण है कि हम सजा रहे हैं। ऐसा लगता है कि अब अच्छी तरह से काम कर रहा है: http://plnkr.co/edit/WuCceTIhavdgVTYuer8R?p=preview :) –

6

एक दबाने एकत्रीकरण विकल्प नहीं है! Set groupingShowAggregationMenu to false

+0

हालांकि यह लिंक प्रश्न का उत्तर दे सकता है, यहां उत्तर के आवश्यक हिस्सों को शामिल करना बेहतर है और इसके लिए लिंक प्रदान करना बेहतर है संदर्भ। लिंक किए गए पृष्ठ में परिवर्तन होने पर लिंक-केवल उत्तर अमान्य हो सकते हैं। – bitoiu

+1

@bitoiu: ऐसा नहीं है; उत्तर ने एक कार्यात्मक यूआरएल के बिना, आसानी से समझने के लिए पर्याप्त जानकारी दी, क्या करना है, इसलिए यह केवल लिंक नहीं है। –

+0

मुझे इसके साथ खुशी है, लेकिन अगर लिंक ऑफ़लाइन हो जाता है तो यह मेरी टिप्पणी के अनुसार एक बेकार जवाब है। यह अभी भी एक यूआरएल जवाब है। – bitoiu

12

यह डिफ़ॉल्ट रूप से सही पर सेट किया है, तो आप

groupingShowAggregationMenu अपने columnDefs में यह निर्दिष्ट करने की आवश्यकता: झूठी

+0

यह मेरे लिए काम किया। इसे प्रत्येक कॉलम डीफ पर रखा जिसकी मुझे आवश्यकता थी। धन्यवाद! – Michael

+0

यह एक अच्छा, साफ समाधान था। याद रखें कि यह एक ग्रिड सेटिंग नहीं बल्कि एक कॉलमडिफ सेटिंग है। आपको इसे हर कॉलम पर रखना होगा। – BrianLegg

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