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

  • AlaskanGrizzly

    AlaskanGrizz

    30 EKİM 2009
  • New Challenger - Game Reviews

    New Challeng

    20 Temmuz 2006
  • paikimchung

    paikimchung

    12 Mayıs 2006