Tuesday, 15 September 2015

javascript - AngularJS Promise & atop Filter. Failed to execute 'atob' on 'Window' -


बैकग्राउंड: कोनालर फ्रंट सिरे पर कार्य करना एक बैकएंड से बेस 64 एन्कोडेड दस्तावेज़ को पुनर्प्राप्त करना एटोब मुझे एक त्रुटि दे रही है, लेकिन सब कुछ काम करता है।

संदेह: मुझे लगता है कि मेरे atob फिल्टर को दो बार कहा जाता है

फ़िल्टर कोड :

  angular.module (वेक्टर)  

फ़िल्टर कोड 'डॉकफिल्टर', [])। फ़िल्टर ('base64Decode', फ़ंक्शन) (वापसी कार्य (सिफर टेक्स्ट) {वापसी एटोब (साइफर टेक्स्ट);};});

नियंत्रक कोड :

  कोणीय। मॉड्यूल ('डॉक्टर')। नियंत्रक ('DocCtrl', ['$ scope ',' डॉक्टर सेवा ', फ़ंक्शन ($ दायरा, डॉकसेवा) {$ scope.doc = DocService.getCurrentDoc ();}]);  

getCurrentDoc () एक REST अनुरोध है यह एक आंतरिक वेब सेवा का अनुरोध प्राप्त करता है

HTML :

  & lt; span ng-bind-html = "doc.content | base64Decode" & gt; & lt; / span & gt;  

यह कंसोल की जांच किए बिना 'ठीक' - यह काम आपको कभी नहीं पता होगा। कंसोल से पता चलता है:

"त्रुटि: 'विंडो' पर 'एटोब' निष्पादित करने में विफल: स्ट्रिंग डीकोड करने योग्य नहीं है।"

यह मेरे लिए नया है, इसलिए मुझे यकीन नहीं है कि कोई बेहतर तरीका है।

एटीओबी (अपरिभाषित); // त्रुटि को फेंकता है

आपको फिल्टर को संशोधित करने की आवश्यकता है

  angular.module ('docFilters', [])। फ़िल्टर ('base64Decode', फ़ंक्शन () {रिटर्न फ़ंक्शन (टेक्स्ट) {रिटर्न टेक्स्ट & amp; एटोब (टेक्स्ट);};});  

No comments:

Post a Comment