बस jsViews साइट पर लाइव उदाहरण कोड देख रहे हैं: https://www.jsviews.com/#jsvfortag@jsvsortfilterrange

अगर मैं एक प्रकार को शामिल करने के लिए इस लाइन को संशोधित करता हूं:

{^{for members sort='name' start=start-1 end=end}} 

इसमें कोई आइटम देखने के बाद सरणी फिर से क्रमबद्ध नहीं होती है।

$.observable(team.members).insert(0, {name: "zzz this should be last"})

किसी आइटम को डालने के बाद सॉर्ट को ट्रिगर करने का कोई विचार?

0
mcartmel 15 अप्रैल 2020, 07:55

1 उत्तर

सबसे बढ़िया उत्तर

जब कोई सरणी परिवर्तन ईवेंट होता है तो सॉर्टिंग रीफ्रेश होती है। यदि आप किसी आइटम को हटाने के लिए [जोड़ें], या [x] पर क्लिक करते हैं, तो sort='name' फिर से क्रमबद्ध हो जाएगा। लेकिन आप जो चाहते हैं, वह यह है कि जब भी आप किसी आइटम में नाम की संपत्ति बदलते हैं, तो वह फिर से क्रमबद्ध हो जाता है।

लेकिन आप इसे चरित्र प्रविष्टि पर फिर से क्रमबद्ध नहीं करना चाहते हैं, इसलिए पहली बात यह है कि सेट करना है:

<input data-link="name trigger=false" />

ट्रिगर सेटिंग के लिए दस्तावेज़ यहां देखें (ऊपर वैश्विक सेटिंग के स्थानीय ओवरराइड के रूप में किया गया)।

इसके बाद आप घोषणात्मक रूप से अपनी वस्तुओं की सूची लिख कर प्रत्येक आइटम पर नाम टेक्स्ट पर निर्भर कर सकते हैं

{^{for members sort='name' depends='members.[]^name'}}

depends='members.[]^name' सुविधा में बहुत कम दस्तावेज हैं, लेकिन यह सरणी में किसी भी आइटम पर व्यक्तिगत संपत्ति परिवर्तन (यहां, name संपत्ति) का जवाब देने के लिए एक वाइल्ड कार्ड है।

देखें https://www.jsviews.com/#samples/sort-filter @ jsv-for एक नमूने के लिए जो इसका उपयोग करता है।

आप किसी भी ऐरे आइटम प्रॉपर्टी में बदलावों का जवाब देने के लिए depends='members.[]^*' भी कर सकते हैं।

और depends='members.**' सदस्यों के सरणी के अंतर्गत किसी भी परिवर्तन को सुनने के लिए भी काम करेगा (दस्तावेज़ देखें यहां)

यहाँ एक कार्यशील नमूना है जो ऊपर दिए गए depends='members.[]^name' दृष्टिकोण का उपयोग करता है:

https://jsfiddle.net/BorisMoore/b51tu27n/

0
BorisMoore 28 अप्रैल 2020, 05:10