javascript - Ember array: no render on `removeObject` -
मेरे पास एक Ember.ArrayProxy
इस तरह बनाया गया है:
Em.ArrayProxy.createWithMixins (Em.Array, Em.MutableArray, Em.SortableMixin, {content: Em.A (arr), sortProperties: गुण, क्रमबद्ध: fn? Fn: शून्य (0)})। फिर से खोलें ({isEmpty : फ़ंक्शन () {this.get लौटें ('लंबाई') & lt; 1;}});
जब मैं pushObject
या sortBy
पर सरणी का उपयोग करता हूं तो डाटा बाइंडिंग बहुत अच्छी तरह से काम करता है। लेकिन जब मैं इस सरणी पर removeObject
का उपयोग करता हूं, तो मेरे पास html में कोई अद्यतन नहीं है I मैं इसे कैसे ठीक कर सकता हूं?
मेरी एम्बर:
डेब्यूग: ---------------------- --------- DEBUG: एम्बर: 1.7.1 + प्री सीएसीएसी 0 9 0 एबीयूबी: एम्बर डेटा: 1.0.0-बीटा 9 डेब्यूज: हैंडलबारः 1.3.0 डेब्यूज: jQuery: 2.0.3 डेब्यूग: - -----------------------------
UPD:
सूची से ऑब्जेक्ट हटाते समय मैंने बहुत अजीब व्यवहार देखा:
मेरे नमूने में टेम्पलेट / क्रम / सूची.handlebars
है:
& lt; ul class = "scrollable_list" & gt; {{# ऑच ग्रुप ऑर्डर}} & lt; li वर्ग = "समूह" & gt; & Lt; div class = "group_title" & gt; {{Format_date group.date f = "DD.MM.YYYY"}} पर आदेश [div class = "label" & gt; {{group.count}} & lt; / div & gt; & Lt; / div & gt; & Lt; / li & gt; & LT; ul & gt; {{Group.orders में जरूरी आदेश}} & lt; li {{बाइंड-एट्रि क्लास = ': ऑर्डर आदेश.आईएस_माइन ऑर्डर.आईएस_क्लाइम'}} & gt; {{# Link-to 'order.group.show' controller.group ऑर्डर}} {{आंशिक 'आदेश / आइटम'}} {{/ link-to}} & lt; / li & gt; {{/ प्रत्येक}} & lt; / ul & gt; {{/ प्रत्येक}} & lt; / ul & gt;
ऑब्जेक्ट ऑर्डर
है एरेप्रोक्सी
of Ember.Object
। सरणी this.create_sortable_array
द्वारा बनाई गई है। सरणी में प्रत्येक ऑब्जेक्ट में यह संरचना होती है:
Em.Object.create ({date: दिनांक, समय: date.getTime (), आदेश: this.create_orders_array ()})
संपत्ति आदेश
है ऐरेप्रोक्सी
भी। प्रत्येक आइटम DS.Model
उदाहरण है।
विधियां:
this.create_orders_array : (ए,>
this.create_sortable_array :
create_sortable_array: फ़ंक्शन (arr, properties, desc, fn ) {Desc = (typeof desc == 'अपरिभाषित' || desc == null)? गलत: उतर; एफएन = एफएन || शून्य (0); रिटर्न Em.ArrayProxy.createWithMixins (Em.MutableArray, Em.MutableEnumerable, Em.SortableMixin, {content: Em.A (arr), sortProperties: गुण, sortAscending: fn? Fn: शून्य (0)})। फिर से खोलें ({isEmpty : फ़ंक्शन () {this.get लौटें ('लंबाई') & lt; 1}}); }
टेम्पलेट को {{आउटलेट ऑर्डर}}
में राउटर द्वारा प्रदान किया जाएगा:
ऐप .OrdersRoute = App.AppRoute.extend ({renderTemplate: function () {this._super () this.render ('order / list', में: 'आदेश', नियंत्रक: 'आदेश') this.render ({'order '' ऑर्डर ', आउटलेट:' मेन_व्यू '}) इस। रेंडर (' ऑर्डर / स्मार्ट_सेख ', में:' एप्लिकेशन ', आउटलेट:' स्मार्ट_शैच्छ ', नियंत्रक:' ऑर्डर ')}});
ऐसा लगता है कि यह मेरे लिए ठीक काम कर रहा है ऐसा लगता है कि आप सूची से आइटम को बिल्कुल भी नहीं हटा रहे हैं।
var arr = [{a: 'saf'}, {a: 'fdsa'}, {a: 'asd '}]; Var foo = Em.ArrayProxy.createWithMixins (Em.Array, Em.MutableArray, Em.SortableMixin, {content: arr, sortProperties: ['a'], सॉर्ट करनेवाला: सच})। फिर से खोलें ({isExty: function () {return This.get ('लंबाई') & lt; 1;}}); App.IndexRoute = Ember.Route.extend ({मॉडल: फ़ंक्शन () {Em.run.later (function () {foo.removeObject (foo.objectAt (1))}}, 2000); return foo;}}) ;
Comments
Post a Comment