$rootScope.obj1 = {} を使用して、app.js の .run() 関数でグローバル変数を事前定義します。プログラムを初めて起動するときは、app.js の .controller() 関数で $rootScope にアクセスできます。ページ。.obj1 の。ただし、ブラウザでページを更新すると、ページの .controller() 関数でアクセスされる $rootScope.obj1 が未定義になります。
app.js の .run() 関数が更新時に実行されていないのかと最初は思っていましたが、テストしてみると実行されていることが分かりました。ただし、更新時の実行順序は、最初にページの .controller() 関数を実行し、次に app.js の .config() 関数を実行し、次に app.js の .run() 関数を実行するようです。最初にプログラムを開始したときとは異なります。この順序関係のため、ページを更新した後は、ページの .controller() 関数で事前定義されたグローバル変数にアクセスできません。
すみません、本当にそうですか?もしそうなら、この問題をどのように解決すればよいでしょうか?事前定義されたグローバル変数はどこに配置する必要がありますか?
angular.jsの実行シーケンスは大まかに以下の通りです:
app.config()
app.run()
コンパイル手順
app.controller()
コマンドリンク
問題を判断するのは難しいですが、おそらく .js の読み込み順序が原因だと思います。