1

私はAngularサービスを持っています

app.factory('MyService', function($http,$q)){
    return{
        super : function(){
             return "Angular is awesome";
        }
    };
});

Angular のスコープ外 (コントローラーまたはサービス) で定義された複雑な JavaScript オブジェクト:

var MyObject = {
    anyFunction : function(){
        alert(MyService.super());
    }
};

今、やっている

MyObject.anyFunction();

もちろん失敗。MyService を外部の JavaScript オブジェクトに挿入する方法を教えてください。

4

1 に答える 1

1

これは悪い方法です。angular の var を localStorage に保存し、レガシー コードからアクセスすることができます。また、2 番目のオプションとして、$windowサービスを使用してファクトリからグローバル変数にアクセスすることもできます。

一般的なjsで:

var myVar;

工場で:

app.factory('MyService', ['$window', '$http', '$q',function($window, $http, $q)){
    return{
        super : function(){
            $window.myVar = 'that is it';
            //or 
            //localStorage.addItem('myVar', 'varValue');
        }
    };
}]);

MyService.superが完了したら、以前と同じように共通の js で var にアクセスできます。

于 2013-08-05T06:13:16.573 に答える