मैं अपने सर्वर पर बेस 64 एन्कोडेड स्ट्रिंग भेजने की कोशिश कर रहा हूं लेकिन मैं जिस डेटा बाध्यकारी का उपयोग करता हूं वह इसे भेजने के लिए फ़ंक्शन में "" है।

यह कोड है:

processFile: function(event) {
      var rawFile = event.target.files[0];
      var reader = new FileReader();
      reader.readAsDataURL(rawFile);
      reader.onload = function() {
        this.file = reader.result.split(',')[1];
      };
    },

तो this.file में बेस 64 स्ट्रिंग है लेकिन जब मैं इसे किसी अन्य फ़ंक्शन में एक्सेस करता हूं तो यह वापस आ रहा है ""

मुझसे यहां क्या गलत हो रहा है?

0
JrProgrammer 2 सितंबर 2017, 14:35
आप इस तरह ES6 का उपयोग कर सकते हैं: reader.onload = () => { this.file = reader.result.split(',')[1]; }
 – 
talkhabi
2 सितंबर 2017, 15:20
का संभावित डुप्लिकेट ?
 – 
Bert
2 सितंबर 2017, 19:24

1 उत्तर

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

प्रयत्न

processFile: function(event) {
      var rawFile = event.target.files[0];
      var reader = new FileReader();
      reader.readAsDataURL(rawFile);
      reader.onload = function() {
        this.file = reader.result.split(',')[1];
      }.bind(this);
    },

या

processFile: function(event) {
      var rawFile = event.target.files[0];
      var reader = new FileReader();
      reader.readAsDataURL(rawFile);
      var vm = this;
      reader.onload = function() {
        vm.file = reader.result.split(',')[1];
      };
    },
1
Reiner 2 सितंबर 2017, 14:41
धन्यवाद, यह काम किया। क्या आप समझा सकते हैं कि मुझे "इस" को तुरंत क्यों करना है?
 – 
JrProgrammer
2 सितंबर 2017, 15:14
1
दुर्भाग्य से दस्तावेज़ीकरण बंद हो रहा है, यही वजह है कि आपको इसे लिंक करने की अनुमति नहीं दी गई थी। इन दिनों मैं इन प्रश्नों को इसके डुप्लिकेट के रूप में चिह्नित कर रहा हूं: stackoverflow.com/questions/20279484/…
 – 
Bert
2 सितंबर 2017, 19:23
मेरी राय में vuejs के आधे प्रश्न स्कोपिंग के बारे में हैं और आधे अजाक्स के बारे में हैं और निश्चित रूप से वे अक्सर प्रतिच्छेद करते हैं।
 – 
Reiner
2 सितंबर 2017, 20:17