Verwenden Sie $rootScope.obj1 = {}, um globale Variablen in der Funktion .run() von app.js vorzudefinieren. Wenn Sie das Programm zum ersten Mal starten, können Sie in der Funktion .controller() von auf $rootScope.obj1 zugreifen die Seite von. Nach dem Aktualisieren der Seite im Browser wird jedoch $rootScope.obj1, auf das in der .controller()-Funktion der Seite zugegriffen wird, undefiniert.
Zuerst dachte ich, dass die .run()-Funktion von app.js beim Aktualisieren nicht ausgeführt wurde, aber nach dem Testen wurde festgestellt, dass sie ausgeführt wurde. Die Ausführungsreihenfolge beim Aktualisieren scheint jedoch zu sein: Führen Sie zuerst die Funktion .controller() der Seite aus, führen Sie dann die Funktion .config() in app.js aus und führen Sie dann die Funktion .run() in app.js aus. Es ist anders als beim ersten Start des Programms. Aufgrund dieser Reihenfolgebeziehung kann nach dem Aktualisieren der Seite nicht auf die vordefinierten globalen Variablen in der Funktion .controller() der Seite zugegriffen werden.
Entschuldigung, ist das tatsächlich der Fall? Wenn ja, wie lässt sich dieses Problem lösen? Wo sollen die vordefinierten globalen Variablen platziert werden?
angular.js的执行顺序大概如下:
app.config()
app.run()
指令编译
app.controller()
指令link
很难进行你的问题判断,我猜想可能是不是因为你.js加载顺序问题呢。