javascript - extjs एक दुकान में इसे स्टोर करने से पहले डुप्लिकेट मूल्य को हटा दें




(2)

आप अपने स्टोर में idProperty मान (idProperty == 'नाम') निर्दिष्ट कर सकते हैं
http://docs.sencha.com/ext-js/4-1/#!/api/Ext.data.Model-cfg-idProperty

मैं नकली मूल्य को किसी दुकान में संग्रहीत करने से पहले निकालने का प्रयास करता हूं। मैं स्टोर में एक ही मूल्य को केवल 1 बार स्टोर करना चाहता हूं। लेकिन ऐसा लगता है कि निम्न Ext.Array.unique लाइन काम नहीं कर रहा है। क्या किसी को भी यह सुधारने में मेरी मदद कर सकता है? धन्यवाद

var input1store = new Ext.data.Store({
    fields: [{name: 'name'}],
    proxy: {
        type: 'ajax',
        url: 'www.requesturl.com?format=json&source1',
        reader: {
            type: 'json',
            root: 'xml.result'
        }
    },
    autoLoad: false,
    sorters: [{property: 'name', direction: 'asc'}],
    listeners:{
        load: function(rec){
            uniqueArray = Ext.Array.unique(rec.getRange());
        }
    }
});

आप फिल्टर के filterBy विधि को फ़िल्टर करने के लिए उपयोग कर सकते हैं जो लोड करने के बाद आप स्टोर में प्रकट नहीं करना चाहते हैं।

ध्यान दें कि स्टोर फ़िल्टर किए गए रिकॉर्डों की प्रतिलिपि रखेगा, यह clearFilter होगा कि अगर clearFilter को कहा जाता है तो वह पुनर्स्थापित हो जाएगा (जो आपके द्वारा या स्टोर के उपयोग से घटक हो सकता है) यदि आप इन रिकॉर्डों के निश्चित रूप से छुटकारा चाहते हैं, तो आपको उस प्रति को हटाना होगा।

Ext.create('Ext.data.Store', {
    fields: ['name'],

    // example data
    proxy: {
        type: 'memory',
        data: [{name: 'Foo'},{name:'Bar'},{a:'Baz'},{a:'Foo'},{a:'Bar'}],
    },

    listeners: {
        load: function(store) {
            // using a map of already used names
            const hits = {}
            store.filterBy(record => {
                const name = record.get('name')
                if (hits[name]) {
                    return false
                } else {
                    hits[name] = true
                    return true
                }
            })

            // delete the filtered out records
            delete store.snapshot
        },
    },
})




extjs