0

私はデータマップ、angularJS、Javascript を含むコードに取り組んでいます。2 つのコントローラー間でイベントを通信するために factory を使用しています。

工場は以下の通り

abc.factory('EventFactory', function () {
return { eventData: ''};   });

1つのコントローラーのホームページのパーシャルで、次のように工場データを更新しています

.on('mouseover', function () {
        $scope.$apply(function () {
            $scope.EventFactory.eventData = 'mouseover';
        });
    })

同様に、マウスアウトとクリックイベントで値を変更しています

別のコントローラーで、このような変更を検出しています

$scope.$watch('EventFactory.eventData', function (data) {
    if (data == 'mouseover') {
        //print on console let's say
    }
}, false);

マウスアウトとクリックの同様のハンドル。

すべてが正常に機能し、すべてのイベントが検出されます。しかし問題は、クリックして別のパーシャルに移動し、ホームページの同じパーシャルに戻ったときに、$apply 関数がどのイベントでも機能しないことです。そのため、 $watch も他のコントローラーの変更を検出できません。

$apply 関数でコンソールにログオンしようとしましたが、$scope.$apply 関数が実行されません。パーシャルが最初に読み込まれたときに完全に実行されていました。

これは奇妙に思えますが、何が問題なのか分かりますか? 前もって感謝します。

4

0 に答える 0