मेरा कोड है
var oItemsData = {items: [[text: "abc" , पाठ: "", {text: "abc", text1: "nhm"}, {text: "def", text1: "rst"}, {text: "ghe", पाठ 1: "uvw"}, {Text: "ijk", text1: "xyz"}, {text: "def", पाठ 1: "uhg"}, {text: "lmn", पाठ 1: "abc"}]}; Var oItemsModel = नया sap.ui.model.json.JSONModel (oItemsData); Sap.ui.getCore ()। SetModel (oItems मॉडेल, "आइटम"); नया sap.ui.commons.Label ({text: "FirstOne"}), नए sap.ui.commons.DropdownBox ({मान: "", आवश्यक: सत्य, आइटम: {पथ: "आइटम & gt; / आइटम", टेम्पलेट : नई sap.ui.core.ListItem ({text: {path: "items & gt; text"} // कैसे फ़िल्टर करना}}}}), नया sap.ui.commons.Label ({text: "SecondOne"}) , नया sap.ui.commons.DropdownBox ({मान: "", आवश्यक: सत्य, आइटम: {// पहले के इनपुट के आधार पर आबाद हो रहे हैं}}}})
I दो सवाल हैं 1. पहली ड्रॉपडाउन सूची में कई प्रविष्टियों को कैसे फ़िल्टर किया जाए? 2. पहली इनपुट के आधार पर दूसरी सूची को कैसे पॉप्युलेट करना है?
आपके पास दो ड्रॉपडाउन सूचियां हैं और दूसरे में मूल्य पहले पर निर्भर हैं डेटा थोड़ा सा गड़बड़ाहट है और आपको पहली सूची के लिए दो-दोहरीकरण की समस्या और दूसरी सूची के लिए एक मेल समस्या दोनों के साथ प्रस्तुत करता है।
आप डेटा को साफ करके पूरी तरह से उन समस्याओं से बचने पर विचार कर सकते हैं
चरण 1: डी-डुप्लिकेट और आवश्यकतानुसार संगठित करें:
var संगठित = oItemsData.items.reduce (फ़ंक्शन (एम, आई) {var l = m [i.text] || []; l.push (i .text1); मी [i.text] = l; वापसी m;}, {});
इसका कुछ इस तरह होना चाहिए:
{abc: ['opq', 'nhm'], def: ['rst', ' उहग '], घें: [' यूव्व '], आईजेके: [' एक्सवाईज़ '], एलएमएन: [' एबीसी ']}
चरण 2: डेटा संरचना बनाएं जो खुद को बेहतर बनाता है हाथ में कार्य करने के लिए, और मॉडल में सेट किए गए डेटा में इसका उपयोग करें:
oItemsData.items = Object.keys (संगठित) .मैप (फ़ंक्शन (कुंजी) {वापसी {text : कुंजी, पाठ 1: संगठित [कुंजी]}}}
oItemsData.items
के लिए बनाई गई संरचना कुछ इस तरह दिखाई देगा:
[{text: 'abc', text1: ['opq', 'nhm']}, {text: 'def', पाठ 1: ['rst', 'उह']}, {text: 'ghe ', पाठ 1: [' uvw ']}, {text:' ijk ', text1: [' xyz ']}, {text:' lmn ', पाठ 1: [' abc ']}]
No comments:
Post a Comment