SORU
17 AĞUSTOS 2012, Cuma


Nasıl denetleyicileri arasında değişkenleri geçebilir miyim?AngularJS :

İki Açısal denetleyicileri var:

function Ctrl1($scope) {
    $scope.prop1 = "First";
}

function Ctrl2($scope) {
    $scope.prop2 = "Second";
    $scope.both = Ctrl1.prop1   $scope.prop2; //This is what I would like to do ideally
}

Tanımsız olduğundan Ctrl2 içinde Ctrl1 kullanamam. Eğer bu yüzden onu geçmek için çalışıyorum ancak...

function Ctrl2($scope, Ctrl1) {
    $scope.prop2 = "Second";
    $scope.both = Ctrl1.prop1   $scope.prop2; //This is what I would like to do ideally
}

Bir hata alıyorum. Herkes bunu nasıl biliyor mu?

Yapıyor

Ctrl2.prototype = new Ctrl1();

Ayrıca başarısız olur.

NOT:Bu denetleyicileri birbiri içine geçmiş değildir.

CEVAP
17 AĞUSTOS 2012, Cuma


Birden çok denetleyicileri arasında değişkenleri paylaşmak için bir 14 ** ve kullanmak istediğiniz herhangi bir denetleyici enjekte et.

Basit hizmet örnek:

angular.module('myApp', [])
    .service('sharedProperties', function () {
        var property = 'First';

        return {
            getProperty: function () {
                return property;
            },
            setProperty: function(value) {
                property = value;
            }
        };
    });

Bir denetleyicisi hizmetini kullanarak:

function Ctrl2($scope, sharedProperties) {
    $scope.prop2 = "Second";
    $scope.both = sharedProperties.getProperty()   $scope.prop2;
}

Bu çok güzel this blog (Ders ve özellikle de 2) açıklanmıştır.

Buldum eğer istediğiniz bağlamak için bu özellikler arasında birden çok denetleyicileri çalıştığını daha iyi eğer bağlamak için bir nesnenin özelliği yerine ilkel bir türü (boolean, string, sayı) korumak ilişkili referans.

Örnek: var property = { Property1: 'First' }; yerine var property = 'First';.


GÜNCELLEME:(Umarım) bazı şeyleri daha net yapmak için bir örnek gösteren 16**:

  • Paylaşılan değer statik kopyalarını (myController1) için bağlayıcı
    • Bir ilkel (dizi) için bağlayıcı
    • Bir nesnenin özelliği (kapsam bir değişkene kaydedilir) için bağlayıcı
  • Değerleri güncellenir olarak UI güncelleme paylaşılan değerler bağlama (myController2)
    • Bir ilkel döndüren bir fonksiyon (dizi) için bağlayıcı
    • Nesnenin özellik bağlama
    • İki yönlü bir nesnenin özellik bağlama

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • 1881 Animation

    1881 Animati

    5 EKİM 2013
  • GALERNAYA20

    GALERNAYA20

    19 NİSAN 2011
  • Hudson Music

    Hudson Music

    13 Mart 2007