SORU
8 Mart 2012, PERŞEMBE


Eğer bir nesne özelliği ko olup olmadığını belirlemek.gözlemlenebilir

KnockoutJS sürüm 2.0.0 kullanıyorum

Eğer bir nesnenin tüm özellikleri ile değiştiriyorum, nasıl her özelliği ko.observable olup olmadığını test edebilirim? Ben şimdiye kadar denedim:

    var vm = {
        prop: ko.observable(''),
        arr: ko.observableArray([]),
        func: ko.computed(function(){
            return this.prop   " computed";
        }, vm)
    };

    for (var key in vm) {
        console.log(key, 
            vm[key].constructor === ko.observable, 
            vm[key] instanceof ko.observable);
    }

Ama şu ana kadar her şey yanlıştır.

CEVAP
8 Mart 2012, PERŞEMBE


Boşaltma fonksiyonu ko.isObservable() denilen içerir. ko.isObservable(vm[key]) gibi diyebilirsiniz.

Yorum güncelleme:

Burada ise bir şey hesaplanmış bir gözlemlenebilir olup olmadığını belirlemek için bir fonksiyon:

ko.isComputed = function (instance) {
    if ((instance === null) || (instance === undefined) || (instance.__ko_proto__ === undefined)) return false;
    if (instance.__ko_proto__ === ko.dependentObservable) return true;
    return ko.isComputed(instance.__ko_proto__); // Walk the prototype chain
};

Eğer KO 2.1 - sonra ko.isComputed doğrudan kullanabilirsiniz kullanıyorsanız. GÜNCELLEME:

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Adam Khoury

    Adam Khoury

    23 Ocak 2008
  • CMTelly

    CMTelly

    2 Mayıs 2007
  • National Geographic

    National Geo

    7 Mayıs 2006