2017-07-06 1 views
2

Ich habe mit AngularJS gearbeitet, um die Version unseres Projekts von 1.2.16 auf 1.6.4 zu aktualisieren. Da wir Bower als Paket-Manager verwenden, habe ich die notwendigen Teile bower.json aktualisiert, wie unten:

{ 
"name": "takademi", 
"version": "0.0.0", 
"dependencies": { 
    "angular": "1.6.4", 
    "json3": "~3.3.1", 
    "es5-shim": "~3.1.0", 
    "angular-cookies": "1.6.4", 
    "angular-sanitize": "1.6.4", 
    "angular-animate": "1.6.4", 
    "angular-route": "1.6.4", 
    "angular-bindonce": "~0.3.1", 
    "restangular": "~1.4.0", 
    "angular-base64": "~2.0.2", 
    "lodash": "~2.4.1" 
}, 
"devDependencies": { 
"angular-mocks": "1.2.16", 
"angular-scenario": "1.2.16" 
}, 
"appPath": "app" 
} 

Nach diesem Update lief ich das Projekt. Jetzt bin ich in der Lage Winkel-Version als 1.6.4 zu sehen, aber ich habe unten Fehler:

*** process.env.ENV is not defined, assuming 'prod' env 
t @ bundle.js:4776 
angular.js:14525 TypeError: Cannot read property '$$state' of undefined 
    at then (angular.js:16799) 
    at addPromiseLikeThing (angular-busy.js:67) 
    at angular-busy.js:22 
    at Object.forEach (angular.js:403) 
    at Object.tracker.reset (angular-busy.js:18) 
    at angular-busy.js:175 
    at $watchCollectionAction (angular.js:17859) 
    at Scope.$digest (angular.js:17999) 
    at Scope.$apply (angular.js:18269) 
    at done (angular.js:12387) 
(anonymous) @ angular.js:14525 
getMarketPlace Failed to load resource: the server responded with a status of 401 (Unauthorized) 
angular.js:14525 Possibly unhandled rejection: {"data":{"status":401,"module":0,"code":1000,"message":"AUTHENTICATION_REQUIRED","develo perMessage":null,"moreInfo":null},"status":401,"config": {"method":"GET","transformRequest":[null],"transformResponse":[null],"jsonpCallbackParam":"callback","params":{"v":967},"headers":{"Accept":"application/json, text/plain, */*"},"url":"/portal/rest/market-place/getMarketPlace"},"statusText":"Unauthorized"} 
(anonymous) @ angular.js:14525 
(anonymous) @ angular.js:11008 
processChecks @ angular.js:16860 
$digest @ angular.js:17971 
$apply @ angular.js:18269 
done @ angular.js:12387 
completeRequest @ angular.js:12613 
requestLoaded @ angular.js:12541 

Soweit ich verstanden, es ist einfach erklärt, dass meine neu aktualisierten AngularJS 1.6.4 Datei nicht $$state Keyword-Nutzung unterstützt drin. Anstatt die von uns entwickelten Dateien anzuzeigen, kommt der Fehler von Angulars eigener Datei. Hier

ist die Funktion, die Chrome-Browser navigiert mich den Fehler zeigen - 16799. Linie Angularjs:

function Promise() { 
this.$$state = { status: 0 }; 
    } 

    extend(Promise.prototype, { 
    then: function(onFulfilled, onRejected, progressBack) { 
     if (isUndefined(onFulfilled) && isUndefined(onRejected) && isUndefined(progressBack)) { 
     return this; 
     } 
     var result = new Promise(); 

     this.$$state.pending = this.$$state.pending || []; 
     this.$$state.pending.push([result, onFulfilled, onRejected, progressBack]); 
     if (this.$$state.status > 0) scheduleProcessQueue(this.$$state); 

     return result; 
    }, 

    'catch': function(callback) { 
     return this.then(null, callback); 
    }, 

    'finally': function(callback, progressBack) { 
     return this.then(function(value) { 
     return handleCallback(value, resolve, callback); 
     }, function(error) { 
     return handleCallback(error, reject, callback); 
     }, progressBack); 
    } 
    }); 

ich eine Suche in SO und Google gemacht haben es ein wenig, aber ich couldn Finden Sie keine verwandten Beiträge oder Erklärungen zu meinem Problem. Die meisten Antworten sind Ruby bezogen oder reagieren:

angular showing TypeError: Cannot read property 'state' of undefined

Uncaught TypeError: Cannot read property 'state' of undefined

react: uncaught TypeError: Cannot read property 'state' of undefined

Da ich der ganzen Funktionen von AngularJS und Bower nicht bewusst bin, sind diese Antworten nicht klar für mich.

Können Sie mir dabei helfen?

Vielen Dank im Voraus!

+0

Was Status 401 kann Ressource nicht geladen werden "url": "/ portal/rest/Marktplatz/getMarketPlace" "status": "Unauthorized"? – georgeawg

+0

Auch was ist 'angular-busy.js'? Welche Version verwendest du? Es gab ein Upgrade für AngularJS 1.6 Promethoden vor 6 Monaten. – georgeawg

+0

@georgeawg Ich konnte nicht in angular-busy tauchen, um zu sehen, was es genau macht, aber soweit ich weiß, ist es mit eckigen eigenen Bibliothek verwandt (https://github.com/cgross/angular-busy). Auf der anderen Seite, für Ihren ersten Kommentar, ich denke, ich sollte $$ Zustand Problem zuerst zu lösen, damit umzugehen. Weil es scheint, dass es wieder mit der eigenen Bibliothek von angular verwandt ist. – Prometheus

Antwort

1

Die angular-busy module wird nicht vom AngularJS-Team erstellt. Die Funktion sieht verdächtig aus und ist das letzte, was vor dem Eintritt in die $ q-Bibliothek ausgeführt wurde, wo sie explodiert. Das Vortäuschen der $ q-Bibliothek mit einem 'promiseLike' -Objekt ist wahrscheinlich die Ursache des Fehlers.

Zusätzlich ändert AngularJS V1.6 die Art und Weise wie Ablehnungen behandelt werden. Die Fehlermeldung:

angular.js:14525 Possibly unhandled rejection: {"data":{"status":401,

ist ein Ergebnis dieser Änderungen.

Weitere Informationen finden Sie AngularJS Developer Guide - Migrating to V1.6 ($q)

Verwandte Themen