0

次のコードがあります。

app.factory('testservice', function ($rootScope, $q) {
    var defer = $q.defer();
    defer.promise.then(
        function (){alert('Never fires. Resolve');},
        function (){alert('Never fires. Reject');}
    );
    document.addEventListener('event', function () {
        alert("Fires");
        $rootScope.$apply(defer.resolve);
        alert("Fires");}, false);
   });
}

角度のあるウェブサイトです。そして、私は約束で遊んでいました。問題は、リスナーで約束を解決しているときに、約束が発火しないことです...なぜですか?

もちろん、ここでは約束には意味がありませんが、私はテストしているだけです...そして、何かが欠けていると確信しています。

4

1 に答える 1

1

他の何かがそれに依存しない限り呼び出されないファクトリでテストする代わりに、モジュールの実行機能を使用してください。以前のコードのいくつかの構文エラーを修正しました。現在、すべてが機能しているようです。

プランカー

Javascript:

angular.module('plunker', [])

.run(function ($rootScope, $q, $log) {
    var defer = $q.defer();
    defer.promise.then(
        function (){$log.log('Resolved');},
        function (){$log.log('Rejected');}
    );
    document.addEventListener('mouseenter', function () {
        $log.log("mouse enter fired");
        $rootScope.$apply(defer.resolve);
   });
});
于 2013-10-19T20:21:58.187 に答える