1. ホーム
  2. angularjs

[解決済み] 適用がすでに進行中のエラー

2022-01-30 11:01:08

質問

スタックトレース

Error: $apply already in progress
at Error (<anonymous>)
at beginPhase (file:///android_asset/www/built.min.js:7:22740)
at Object.Scope.$apply (file:///android_asset/www/built.min.js:7:25967)
at navigator.geolocation.getCurrentPosition.that (file:///android_asset/www/built.min.js:13:8670)
at Object.geolocation.getCurrentPosition (file:///android_asset/www/plugins/org.apache.cordova.core.geolocation/www/geolocation.js:122:13)
at Object.getCurrentPosition (file:///android_asset/www/built.min.js:13:8589)
at Object.getCurrentPosition (file:///android_asset/www/built.min.js:13:8277)
at Object.getCurrentCity (file:///android_asset/www/built.min.js:13:8941)
at Object.$scope.locateDevice (file:///android_asset/www/built.min.js:13:10480)
at file:///android_asset/www/built.min.js:7:12292:7

は次のコードを参照しています。 http://pastebin.com/B9V6yvFu

    getCurrentPosition: cordovaReady(function (onSuccess, onError, options) {

        navigator.geolocation.getCurrentPosition(function () {
            var that = this,
                args = arguments;

            if (onSuccess) {
                $rootScope.$apply(function () {
                    onSuccess.apply(that, args);
                });
            }
        }, function () {
            var that = this,
                args = arguments;
            if (onError) {
                $rootScope.$apply(function () {
                    onError.apply(that, args);
                });
            }
        }, {
            enableHighAccuracy: true,
            timeout: 20000,
            maximumAge: 18000000
        });
    })

不思議なことに、私のLG4Xでは正常に動作するのですが、私のsamsung s2では上記のエラーが発生します。何が間違っているのか、何かアイデアはありますか?

解決方法を教えてください。

を呼び出しているため、このエラーが発生します。 $apply 既存の消化サイクルの内部で

大きな疑問は、なぜ $apply ? を呼び出す必要はないはずです。 $apply ただし、Angular以外のイベントからインターフェイスする場合を除きます。 そのため $apply は、通常、私が何か間違ったことをしていることを意味します(繰り返しになりますが、$applyが非Angularイベントから発生する場合を除きます)。

もし $apply が本当にここで適切かどうか、quot;safe apply"のアプローチを使うことを検討してください。

https://coderwall.com/p/ngisma