1

Angular に次のコードがあります。

  $rootScope.commands.forEach(function(element, index, array){
            commands[element] = function() {alert(element + " Test Command!");}
  });

初めてアプリケーションにログインしたときに機能します。つまり、commandsJSON オブジェクトを調べると、 $rootScope.commands.

ページを更新すると問題が発生します。その後、$rootScope.commands未定義のエラーが発生します。

なぜこうなった?明らかに、最初にログインしたときとページを更新しただけでは、動作に違いがあります。

何か案は?

4

1 に答える 1

1

ログインすると、設定していると思います$rootScope.commands。更新すると、このログイン コードは呼び出されなくなります (既にログインしているため)。JavaScript 変数に設定されているものはすべて、ページがリロードされると単純に破棄されるため、初期化関数を使用してリセットする必要があります。

私の推奨事項: を使用して起動コードを追加しangular.module('your_module_name').run()、ユーザーがログインしているかどうかを確認します。ログインしている場合は、$rootScope.commands再度ビルドします。

于 2016-07-30T19:52:03.313 に答える