AngularJS : servisi kullanmak için ne Zaman yerine fabrika | Netgez.com
SORU
22 EYLÃœL 2013, Pazar


AngularJS : servisi kullanmak için ne Zaman yerine fabrika

Lütfen burada benimle ayı. Diğer cevaplar böyle olduğunu biliyorum: Angular.js: service vs provider vs factory?

Ancak hala üzerinde fabrika servis kullanmak istiyorum zaman çözemedim.

Fabrika genel olarak "ortak" birden çok Denetleyicileri tarafından çağrılabilecek fonksiyonları: 3**. oluşturmak için kullanılır söyleyebilirim

Açısal docs üzerinden hizmet fabrika tercih gibi görünüyor. Hatta "fabrika kullandıklarında" bile daha kafa karıştırıcı. servise başvurun http://docs.angularjs.org/guide/dev_guide.services.creating_services

Bir hizmeti kullanmak istiyorsunuz?

Yalnızca Olası ya da hizmeti ile çok daha kolay yapılan bir şey var mı?

Perde arkasında olup biten farklı bir şey var mı? Performans/bellek farklar?

İşte size bir örnek. Beyan yöntemi dışında, aynı onlar gibi bir vs diğer yapardım neden olduğunu çözemedim. http://jsfiddle.net/uEpkE/

Güncelleme:Thomas'ın cevap gibi görünüyor ima bu hizmet için daha basit mantık ve fabrika için daha karmaşık mantık ile özel yöntem, yani güncelledim keman kod ve öyle görünüyor ki her ikisi de mümkün destek özel fonksiyonlar?

myApp.factory('fooFactory', function() {
    var fooVar;
    var addHi = function(foo){ fooVar = 'Hi ' foo; }

    return {
        setFoobar: function(foo){
            addHi(foo);
        },
        getFoobar:function(){
            return fooVar;
        }
    };
});
myApp.service('fooService', function() {
    var fooVar;
    var addHi = function(foo){ fooVar = 'Hi ' foo;}

    this.setFoobar = function(foo){
        addHi(foo);
    }
    this.getFoobar = function(){
        return fooVar;
    }
});

function MyCtrl($scope, fooService, fooFactory) {
    fooFactory.setFoobar("fooFactory");
    fooService.setFoobar("fooService");
    //foobars = "Hi fooFactory, Hi fooService"
    $scope.foobars = [
        fooFactory.getFoobar(),
        fooService.getFoobar()
    ];
}

CEVAP
22 EYLÃœL 2013, Pazar


Açıklama

Farklı şeyler var :

Ä°lk:

  • EÄŸer hizmeti kullanıyorsanız alacakbir fonksiyon örneÄŸi("bu" anahtar kelime).
  • EÄŸer bir fabrika kullanırsanız alırsınıztarafından döndürülen deÄŸeri iÅŸlevi referans çağırma(fabrika dönmek deyimi).

ref:angular.service vs angular.factory

Ä°kinci:

AngularJS (değer, sabit, hizmetleri, fabrikalar) sağlayıcıları tekiz hepsi unutmayın !

Üç:

Bir veya diğer (servis ya da fabrika) kod tarzı hakkında. Ama,ortak yolAngularJS içinde kullanmak içinfabrika.

Neden ?

Çünkü"Fabrika yöntemini AngularJS bağımlılık enjeksiyon sistemi nesneleri almanın en yaygın yolu vardır. Çok esnektir ve karmaşık oluşturma mantığı içerebilir. Fabrikalar normal fonksiyonları olduğu için, aynı zamanda "" değişkenler. özel benzetmek için yeni sözlü bir kapsam yararlanabiliriz Bu verilen hizmet uygulama ayrıntılarını gizlemek için çok yararlıdır."

(ref: http://www.amazon.com/Mastering-Web-Application-Development-AngularJS/dp/1782161821).

Kullanımı

Servis :Sadece ekleyerek çağırmak için yararlı işlevler paylaşımı için yararlı olabilir () enjekte edilen işlev başvurusu. Ayrıca çalıştırmak olabilir injectedArg.(bu) ya da benzer bir çağrı.

Fabrika :Bir ‘sınıf’ bundan sonra örneği oluşturmak için yeni çiğnenmiş olabilir fonksiyonu. döndürmek için yararlı olabilir

Yanikarmaşık mantık varsa, bir fabrika kullanınsize hizmet vebu karmaşıklığı göstermek istemiyorsun.

Diğer durumlardaeğer bir hizmetinin bir örneğini geri dönmek isterseniz, sadece servis kullanın.

Ama bence olguların € fabrika kullanacağınız zaman görürsünüz.

Daha fazla bilgi için : http://blog.manishchhabra.com/2013/09/angularjs-service-vs-factory-with-example/


GÃœNCELLEME :

Mükemmel bir yazı burada : http://iffycan.blogspot.com.ar/2013/05/angular-service-or-factory.html

Eğer fonksiyonu olmak istiyorsan "normal bir fonksiyon gibi kullanmak fabrika. Eğer işlev yeni bir örneği olmak istiyorsanız operatör, kullanım hizmeti. Eğer farkı bilmiyorsun bile, fabrika kullanın."


GÃœNCELLEME :

AngularJS ekip çalışması yapar ve bir açıklama : http://docs.angularjs.org/guide/providers

Ve bu sayfa :

"Fabrika ve Hizmet en sık kullanılan tarifler. Aralarındaki tek fark Servis tarifini Fabrika JavaScript temel öğeler ve fonksiyonları üretmek varken özel nesne türü için çalışır."

Bunu PaylaÅŸ:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VÄ°DEO

Rastgele Yazarlar

  • sghaff1

    sghaff1

    23 Mart 2009
  • soyacincautv

    soyacincautv

    14 NÄ°SAN 2010
  • tunez4you

    tunez4you

    20 EKÄ°M 2008