के साथ एचटीएमएल 5 फ़ाइल अपलोड करें मैं एक फ़ाइल की सामग्री को पढ़ने के लिए कोणीय प्राप्त करने की कोशिश कर रहा हूं जिसे उपयोगकर्ता <input type="file"
नियंत्रण के माध्यम से चुनता है। यहां तक कि कोणीय हालांकि फाइल अपलोड नियंत्रण के लिए निर्देश नहीं है, यह $apply
है कि ठीक करने के लिए एक फोन के साथ आसान होना चाहिए:एंगुलरजेएस
function MyController($scope) {
$('#myFile').on('change', function() {
var that = this;
$scope.$apply(function() { $scope.files = that.files });
});
}
दुर्भाग्य से, गतिविधि सक्रिय कभी नहीं किया गया है। ऐसा लगता है कि चयनकर्ता सही डीओएम तत्व को संदर्भित करने में असमर्थ है: भले ही चयनकर्ता तत्व पाता है, फाइलों की सूची हमेशा खाली होती है। यह तब भी होता है जब मैं जेएस कंसोल के साथ घूमता हूं। इसके बजाय डीओएम निरीक्षक की संपत्तियों में फ़ाइल सूची है।
यह मुझे पागल कर रहा है, लेकिन एकमात्र तरीका यह है कि मुझे अब तक काम करने के लिए मिल गया है एक इनलाइन इवेंट हैंडलर का उपयोग करना जो वैश्विक चर को असाइन करता है। Jquery चयनकर्ता एक और आइटम क्यों लौट रहा है? क्या कुछ टेम्पलेट संकलन मम्बो-जंबो है जो कोणीय करता है जो चयनकर्ताओं को भ्रमित करता है?
अच्छा। मैंने नियंत्रक में एक वैश्विक समारोह को परिभाषित किया, और इसे इनलाइन इवेंट हैंडलर से बुलाया। चूंकि बाहरी दायरे में $ गुंजाइश है, कम से कम मैं परिवर्तनों को लागू कर सकता हूं। निर्देश निश्चित रूप से ऐसा करने के लिए एक और "कोणीय" तरीका है। लेकिन सवाल खड़ा है: चयनकर्ता एक 'इनपुट' तत्व क्यों लौटाता है जो वास्तव में उपयोगकर्ता के साथ बातचीत कर रहा है, लेकिन वास्तव में यह नहीं है? – BruceBerry
mmmh यह मेरे लिए काम नहीं करता है। अगर मैं आपका प्लंकर चलाता हूं, तो मुझे हमेशा फाइलें मिलती हैं: { "0": {} } क्या मैं कुछ गलत करता हूं? – pomarc
@pomarc आईआईआरसी, यह काम करता था ... लेकिन ऐसा लगता है कि आधुनिक ब्राउज़र फ़ाइल ऑब्जेक्ट को स्ट्रिंग करने का समर्थन नहीं करते हैं। आपको अपने दृश्य में दिखाने के लिए सीधे संपत्तियों तक पहुंच प्राप्त करनी होगी। – Tosh