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

  • Huot Media

    Huot Media

    7 Mayıs 2010
  • MkElite

    MkElite

    13 NİSAN 2012
  • SDSARG3

    SDSARG3

    14 Mart 2009