SORU
16 Mayıs 2013, PERŞEMBE


Bir fabrika Ne?AngularJS :

Angular.js Bir sürü iş yapıyorum ve genel olarak ilginç ve güçlü bir çerçeve olduğunu düşünüyorum.

Hizmetleri Fabrikalar vs vs vs Sağlayıcıları Değerleri üzerine tartışmalar bir sürü var biliyorum, ama yine de Factory bir şey hakkında çok karıştı.

Fabrika aşağıdaki gibi diğer StackOverflow tartışmalara tanımlanmıştır:

Fabrikalar

Kullanımı: module.factory( 'factoryName', function ); Sonuç: fonksiyon başvuru modülü.geçti çağırma tarafından döndürülen değeri verilecektir enjekte edilebilir bir argüman olarak factoryName bildirirken fabrika.

Kavramak çok zor bu açıklama buldum ve bir fabrika ne benim anlayış artırmak değil.

Kimse tam olarak Factory ve*,* 6*,* 5 veya başka bir yerine kullanmanız gerekir neden hakkında paylaşmak için açıklamalar veya gerçek hayattan örnekler herhangi olurdu?

Güncelleme

7**tutan bir referansherhangi birnesne.

8**bir fonksiyonudurherhangi bir dönernesne

9**bir fonksiyonudurherhangi bir dönerişlevi

-Vay be-

CEVAP
16 Mayıs 2013, PERŞEMBE


Anladığım kadarıyla hemen hemen hepsi aynı. Büyük farklar karmaşıklıkları vardır. Sağlayıcıları çalışma zamanında yapılandırılabilir, fabrikalar biraz daha sağlam ve hizmetleri en basit biçimidir.

Bu soru Service vs provider vs factory Check out

Ayrıca gist bu ince farkları anlamak için yararlı olabilir.

Kaynak: https://groups.google.com/forum/#!topic/angular/hVrkvaHGOfc

jsFiddle: http://jsfiddle.net/pkozlowski_opensource/PxdSP/14/

yazar:Pawel Kozlowski

var myApp = angular.module('myApp', []);

//service style, probably the simplest one
myApp.service('helloWorldFromService', function() {
    this.sayHello = function() {
        return "Hello, World!";
    };
});

//factory style, more involved but more sophisticated
myApp.factory('helloWorldFromFactory', function() {
    return {
        sayHello: function() {
            return "Hello, World!";
        }
    };
});

//provider style, full blown, configurable version     
myApp.provider('helloWorld', function() {
    // In the provider function, you cannot inject any
    // service or factory. This can only be done at the
    // "$get" method.

    this.name = 'Default';

    this.$get = function() {
        var name = this.name;
        return {
            sayHello: function() {
                return "Hello, "   name   "!";
            }
        };
    };

    this.setName = function(name) {
        this.name = name;
    };
});

//hey, we can configure a provider!            
myApp.config(function(helloWorldProvider){
    helloWorldProvider.setName('World');
});


function MyCtrl($scope, helloWorld, helloWorldFromFactory, helloWorldFromService) {

    $scope.hellos = [
        helloWorld.sayHello(),
        helloWorldFromFactory.sayHello(),
        helloWorldFromService.sayHello()];
}​

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • AyfionGaming

    AyfionGaming

    20 ŞUBAT 2013
  • Vsauce

    Vsauce

    30 Temmuz 2007