2016-03-03 14 views
14

मुझे एक एमएफपी हाइब्रिड (कोई कॉर्डोवा) अनुप्रयोग और कोणीय 1.5 संयोजन करने में समस्याएं प्रतीत होती हैं। कोणीय 1.4.9 के साथ एक ही आवेदन ठीक काम करता है, लेकिन अगर मैं angular1.5 करने के लिए स्विच तो मैं इस त्रुटि मिलती है:AngularJS 1.5 त्रुटि बूटस्ट्रैप आईबीएम मोबाइलफर्स्ट

Error: [$injector:modulerr] Failed to instantiate module ng due to: 
TypeError: Cannot set property 'aHrefSanitizationWhitelist' of null 
at $$SanitizeUriProvider (http://localhost:10080/Hybrid/apps/services/preview/HelloWorld/android/1.0/default/vendor/angular5.js:17272:35) 
at new <anonymous> (http://localhost:10080/Hybrid/apps/services/preview/HelloWorld/android/1.0/default/worklight/worklight.js:1033:23) 
at Object.instantiate (http://localhost:10080/Hybrid/apps/services/preview/HelloWorld/android/1.0/default/vendor/angular5.js:4621:14) 
at provider (http://localhost:10080/Hybrid/apps/services/preview/HelloWorld/android/1.0/default/vendor/angular5.js:4435:36) 
at http://localhost:10080/Hybrid/apps/services/preview/HelloWorld/android/1.0/default/vendor/angular5.js:367:32 
at forEach (http://localhost:10080/Hybrid/apps/services/preview/HelloWorld/android/1.0/default/vendor/angular5.js:337:20) 
at Object.provider (http://localhost:10080/Hybrid/apps/services/preview/HelloWorld/android/1.0/default/vendor/angular5.js:4425:9) 
at ngModule (http://localhost:10080/Hybrid/apps/services/preview/HelloWorld/android/1.0/default/vendor/angular5.js:2476:16) 
at Object.invoke (http://localhost:10080/Hybrid/apps/services/preview/HelloWorld/android/1.0/default/vendor/angular5.js:4606:19) 
at runInvokeQueue (http://localhost:10080/Hybrid/apps/services/preview/HelloWorld/android/1.0/default/vendor/angular5.js:4499:35) 
http://errors.angularjs.org/1.5.0/$injector/modulerr?p0=ng&p1=TypeError%3A%…%2FHelloWorld%2Fandroid%2F1.0%2Fdefault%2Fvendor%2Fangular5.js%3A4499%3A35) 

किसी को भी एक सुराग यह क्या हो सकता है?

+0

ngRoute मॉड्यूल अब कोर angular.js फ़ाइल का हिस्सा नहीं है। यदि आप $ रूटप्रोवाइडर का उपयोग जारी रखते हैं तो आपको अब अपने एचटीएमएल –

+0

में कोणीय-रूट.जेएस शामिल करने की आवश्यकता होगी, मैं इस परियोजना में यूई-राउटर का उपयोग करता हूं। –

+0

अच्छा, क्या आप समान डेमो प्रोजेक्ट साझा कर सकते हैं। –

उत्तर

3

जब मैं कोणीय 1.5.0 में अपग्रेड किया गया तो मुझे वही समस्या थी।
समस्या Function.prototype.bind के कस्टम कार्यान्वयन के साथ हुई जो हमारे कोड में थी, ऐसा लगता है कि यह कोणीय में परिभाषित एक के साथ हस्तक्षेप करता है। callstack

at new <anonymous> (http://localhost:10080/Hybrid/apps/services/preview/HelloWorld/android/1.0/default/worklight/worklight.js:1033:23) 

मुझे लगता है कि worklight.js prototype.bind के एक कार्यान्वयन जो कोणीय में एक के साथ असंगत है हो सकता है अपने त्रुटि पर दूसरी पंक्ति में

लें (https://code.angularjs.org/1.5.0/docs/api/ng/function/angular.bind देखें)

+0

क्या आपके पास वर्कलाइट के साथ एक ही समस्या थी या क्या यह कोड का एक अलग टुकड़ा था जो कोणीय के साथ असंगत था? अगर यह वर्कलाइट था, तो आपने इस मुद्दे को हल करने के लिए क्या किया? –

+0

यह एक आंतरिक पुस्तकालय के साथ था, मैंने वर्कलाइट का उपयोग नहीं किया था। मुझे लगता है कि कुछ वर्कलाइट लाइब्रेरी में 'Function.prototype.bind' का एक कस्टम कार्यान्वयन है, मेरा सुझाव है कि आप वर्कलाइट जेएस फाइलों को शामिल करने के बाद angular.js फ़ाइल को शामिल करें, ताकि कोणीय दूसरे तरीके की बजाय वर्कलाइट को ओवरराइड कर सके चारों ओर। – pauloya

0

इसके अलावा यह देख एमएफपी 8.0 कॉर्डोवा प्लगइन पर।

+0

क्या आपको समाधान मिला है – iqueqiorio

+0

आप एमएफपी 8.0 कॉर्डोवा प्लगइन [यहां] के लिए वर्कअराउंड पा सकते हैं [http://stackoverflow.com/questions/38902169/mobilefirst-v8-and-bootstrap-angular-js-v1-5-3- त्रुटि) –

0

जैसा कि अन्य ने उल्लेख किया है, यह Function.prototype.bind के लिए पॉलीफिल के कारण हो सकता है। विशेष रूप से, ऐसा लगता है कि नया के साथ फ़ंक्शन को कन्स्ट्रक्टर के रूप में कॉल करने में उचित रूप से संभाल नहीं है। सरल कार्यान्वयन हमेशा बाध्यकारी वस्तु को वापस आवेदना के बावजूद वापस कर सकता है, जबकि उम्मीद है कि नया ऑपरेटर बाध्यकारी पर प्रबल होता है और नव निर्मित वस्तु बदले में वापस आती है।

उदाहरण के लिए।

// create an object to bind to 
var alt = { 
    message: 'I am the alternate' 
}; 

// our function 
function myFunc() { 
    console.log(this.message); 
}; 

// bind our alternate object to this for myFunc 
myFunc.bind(alt); 

स्टैंडर्ड प्रार्थना किए उम्मीद के रूप में चलाता है

myFunc(); // output 'I am the alternate' 

नई के माध्यम से प्रार्थना नहीं की उम्मीद के रूप में

new myFunc(); // also outputs 'I am the alternate'</jscodeblock> 

अपेक्षित व्यवहार है (यह एक है कि टूट जाता है कोणीय 1.5 है) कि नया आमंत्रण एक नया ओ वापस कर देगा बाध्य और बाध्य नहीं।

यदि आपको Function.prototype.bind के लिए पॉलीफ़िल की आवश्यकता है तो सुनिश्चित करें कि यह इस परिदृश्य को ठीक से संभालता है जैसे कि MDN पर मिलता है।

संबंधित मुद्दे