AngularJS app.run () belgeleri?


337

Nasıl ve nerede app.run()kullanılır? Modül tanımından sonra, sonra app.config()veya sonraapp.controller() mı?

Belirli kod işlevde çalıştırılabilir olup olmadığını soran BreezeJS Açısal Q benimsiyorum app.run().


2
ve herhangi bir açısal modül .constants () ayarlandıktan sonra
alfonsob

Yanıtlar:


650

İşte çağrı sırası:

  1. app.config()
  2. app.run()
  3. yönergelerin derleme işlevleri (dom'ta bulunuyorlarsa)
  4. app.controller()
  5. direktifin link fonksiyonları (tekrar bulunursa)

İşte her birini yürütürken izleyebileceğiniz basit bir demo (ve isterseniz deneyebilirsiniz).

Gönderen açısal en modül docs :

Blokları çalıştır - enjektör oluşturulduktan sonra yürütülür ve uygulamayı başlatmak için kullanılır. Çalışma bloklarına yalnızca örnekler ve sabitler enjekte edilebilir. Bu, uygulama çalışma süresi boyunca daha fazla sistem yapılandırmasını önlemek içindir.

Çalışma blokları, Angular'da ana yönteme en yakın şeydir. Bir çalıştırma bloğu, uygulamayı başlatmak için çalıştırılması gereken koddur. Tüm hizmetler yapılandırıldıktan ve enjektör oluşturulduktan sonra yürütülür. Çalışma blokları tipik olarak birim testi zor olan kodlar içerir ve bu nedenle birim testlerde göz ardı edilebilecek şekilde izole modüllerde bildirilmelidir.

Çalışma bloklarının kullanıldığı durumlardan biri kimlik doğrulama sırasındadır .


4
@KayakDave Bunun konu dışı olup olmadığından emin değilim, ancak yukarıda bahsettiğiniz çalışma emri ile ilgili olarak, Hizmetler ne zaman başlatılacak ve ne zaman çalıştırılacak?
jonnie

3
Muhtemelen @jonnieM'e yardım etmek için biraz geç, ancak hizmetler ilk ne zaman ihtiyaç duyulduklarına bağlı olarak yürütülecek - yani bir çalıştırma bloğunda ilk kez bir servise ihtiyacınız varsa, o bloktan hemen önce yürütülecektir. Sağlayıcılara gelince, rahatsız edici bir şekilde, kodda hangi sırayla geldiklerine bağlı olarak yapılandırma bloklarından önce veya sonra çalışırlar. Doğrudan bir sağlayıcı kullandığınız zaman yapılandırma aşamasında olduğu düşünüldüğünde, bu doğru görünmez.
Zac Seth

2
merhaba, ben de fabrika yükü göstermek için keman örnek çatal ve değiştirdim: jsfiddle.net/lorezz/4cxgpLqj/1
Lorezz

1
Muhteşem. Kapsamlı olmak için, app.constant () işlevleri her şeyden önce çağrılır ... Ve app.factory () ve diğer hizmet işlevleri "tembel" olarak çağrılır. Başka bir deyişle, Angular sağlanan işlevleri, uygulama başlatıldıktan çok sonra bile olsa bir denetleyici veya başka bir hizmetin enjekte edilmesi gerektiğinde hizmet örneği oluşturmak için kullanır.
Niko Bellic

İyonik bir projede, varsayılan olarak çalıştırma config'ten önce çağrılır. Neden ?
Rayjax

28

Özellikle ...

Nasıl ve nerede app.run() kullanılır? Modül tanımından sonra veya sonra app.config(), sonra app.controller()?

Nerede:

Paketinizde. Eg /packages/dashboard/public/controllers/dashboard.js

Nasıl:

Bunun gibi görünmesini sağlayın

var app = angular.module('mean.dashboard', ['ui.bootstrap']);

app.controller('DashboardController', ['$scope', 'Global', 'Dashboard',
    function($scope, Global, Dashboard) {
        $scope.global = Global;
        $scope.package = {
            name: 'dashboard'
        };
        // ...
    }
]);

app.run(function(editableOptions) {
    editableOptions.theme = 'bs3'; // bootstrap3 theme. Can be also 'bs2', 'default'
});
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.