रीढ़ 0.9.0 बदलाव का कहना है:नया बैकबोन व्यू 'इवेंट' हैश संस्करण 0.9.0 में तारों के बजाय फ़ंक्शन मानों के साथ कैसे काम करता है?
एक दृश्य की घटनाओं हैश अब भी अच्छी तरह से मौजूदा दृश्य तरीकों की स्ट्रिंग नामों के रूप में के रूप में प्रत्यक्ष समारोह मूल्यों हो सकती है।
जब मैं निम्नलिखित का प्रयास करता हूं तो यह विफल रहता है, यह कहकर विफल रहता है कि ईवेंट का मान undefined
है।
var BB = Backbone.View.extend({
'initialize': function() {
this.$el.html('<input type="button" value="Click me!" />');
jQuery('body').html(this.el);
},
'events': {
'click input[type="button"]': this.buttonClicked
},
'buttonClicked': function() {
alert('button clicked!');
}
});
window.b = new BB()
क्या मैं नई सुविधा को गलत समझ रहा हूं? क्या कोई समझा सकता है कि यह अपेक्षा से अलग कैसे काम करता है? शायद यह सिर्फ मेरे जावास्क्रिप्ट वाक्यविन्यास/'इस' के मूल्य परिभाषा समय पर है जो borked है।
तरह से मैं यह अभी भी कर रही करने के लिए इस्तेमाल कर रहा हूँ काम करता है:
'events': {
'click input[type="button"]': 'buttonClicked'
},
बहुत अच्छा, धन्यवाद। इस बिंदु पर मुझे आश्चर्य की बात यह है कि क्या मैंने प्रत्येक अज्ञात फ़ंक्शन को परिभाषित किया है (जैसे कि 'पैनकेक्स!' आपके उदाहरण में से एक) के पास 'इस' को देखने के लिए इसका मूल्य होगा, या यदि यह लक्ष्य भी होगा घटना है। ऐसा लगता है कि यह लाइन सुनिश्चित करेगी कि यह स्वयं को देखने के लिए तैयार है: विधि = _.bind (विधि, यह); –
@awcrud: रेखा 1078 (और यह उदाहरण: http://jsfiddle.net/ambiguous/JEavM/1/) इंगित करता है कि अज्ञात फ़ंक्शन को दृश्य में रखा जाएगा। –