SORU
5 Temmuz 2013, Cuma


kullanım app config, angular.js özel sağlayıcı içinde $http

Ana soru - bu mümkün mü? .. Hiç şans ile çalıştım

ana app.js

...
var app = angular.module('myApp', ['services']);
app.config(['customProvider', function (customProvider) {

}]);
...

sağlayıcı kendisi

var services = angular.module('services', []);
services.provider('custom', function ($http) {
});

Ve böyle bir hata var:

Uncaught Error: Unknown provider: $http from services 

Herhangi bir fikir?

Teşekkürler!

CEVAP
6 Temmuz 2013, CUMARTESİ


Sonuç:

  • SanaOLAMAZsağlayıcı yapılandırma bölümüne bir servis enjekte.
  • SanaOLABİLİRsağlayıcının hizmet başlatır hangi bölüme hizmeti enjekte.

Ayrıntılar:

Açısal çerçeve 2 faz başlatma süreci:

1. AŞAMA: Config

config aşamasında sağlayıcıları tüm başlatılır ve config tüm bölümleri yürütülür. config bölümlere sağlayıcı nesneleri yapılandırır ve sağlayıcı nesneleri enjekte edilebilir bu nedenle kod içerebilir. Sağlayıcıları bu aşamada servis nesneleri ve fabrikaları beri ancak, sağlayıcıları tam olarak başlatılmış ve yapılandırılması - ^ değil .bu aşamada sizin için bir hizmet - ^ oluşturmak için sağlayıcı isteyin . yapılandırma aşamasında kullanmak/hizmetleri ekleme yapamazsınız. Bu aşama tamamlandığında sağlayıcıları hazır (daha fazla sağlayıcı yapılandırma aşaması tamamlandıktan sonra yapılabilir).

AŞAMA 2: Çalıştırın

run aşamasında run tüm bölümler yürütülür. Bu aşamadasağlayıcıları hazır ve hizmetleri - ^ oluşturabilirsiniz . 14 ** aşamasında enjekte hizmetleri/kullanabilirsiniz.

Örnekler:

1. Sağlayıcı başlatma $http servis enjekte işleviOLMAZ

angular.module('myModule').provider('myProvider', function($http) {
    // SECTION 1: code to initialize/configure the PROVIDER goes here (executed during `config` phase)
    ...

    this.$get = function() {
        // code to initialize/configure the SERVICE goes here (executed during `run` stage)

        return myService;
    };
});

config aşamasında yürütülen bir işlev $http servis enjekte etmeye çalışıyoruz beri bir hata alacağız:

Uncaught Error: Unknown provider: $http from services 

Bu hata aslında ne dediğini $http servis oluşturmak için kullanılan $httpProvider hala config aşamasında olduğumuzdan) hazır değildir.

2. Hizmet başlatma $http servis enjekte işleviçalışma:

angular.module('myModule').provider('myProvider', function() {
    // SECTION 1: code to initialize/configure the PROVIDER goes here (executed during `config` phase)
    ...

    this.$get = function($http) {
        // code to initialize/configure the SERVICE goes here (executed during `run` stage)

        return myService;
    };
});

Şimdi run aşamasında yürütülen hizmet başlatma işlevi, içine servis enjekte olduğumuz bu kod çalışacak.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Evan Coury

    Evan Coury

    29 NİSAN 2007
  • FOSDEM

    FOSDEM

    13 Ocak 2009
  • TokShogun

    TokShogun

    6 HAZİRAN 2009