0

angularjs は各モジュールが内部的に持っているデータとしかやり取りできないようですが、外部の JavaScript がデータを変更したり、angularjs のサービスにアクセスしたりする方法はありません。

たとえば、いくつかの非angularjsコードとangularjsモジュールが並行して実行されており、非angularjsコードがangularjsが使用する一部のデータを更新する必要がある場合(サービスメソッドの呼び出しなど)、行う方法はありますかそれ?

別の例として、Comet を使用してサーバーから通知をプッシュしているとします。たとえば、ユーザーが新しいメッセージを受信した場合、サーバーからその通知をプッシュできるようにしたい (たとえば、http-chunk 応答を介して JavaScript コードを送信し、そのコードを実行させる)。これらの通知を angular サービスに渡すにはどうすればよいですか?

4

1 に答える 1

1

次のような方法で、角度のない js を介して角度スコープに到達できます。

angular.element(document.getElementById('page-data')).scope().$apply(
    function(scope)
    {
        scope.yourScopeMethod( argument1, argument2, ... );
    });

どこ:

document.getElementById('page-data')

角度ビューを含む html 要素です。

于 2013-09-12T07:19:29.120 に答える