Nakavt: bilgisayarlı gözlemlenebilir vs işlevi
Nakavt kullanırken, salt okunur hesaplanan observables yerine daha basit işlevleri kullanmanın avantajı nedir?
Örneğin: aşağıdaki viewmodel yapıcı ve html parçacığını
var ViewModel = function(){
var self = this;
self.someProperty = ko.observable("abc");
self.anotherProperty = ko.observable("xyz");
self.someComputedProperty = function(){
return self.someProperty() self.anotherProperty();
};
};
<input data-bind="value: someProperty"/>
<input data-bind="value: anotherProperty"/>
<p data-bind="text: someComputedProperty()"></p>
Her şey burada, bu kadar kullanmalıyım yerine neden bir nedeni var: beklediğiniz gibi çalışmak gibi görünüyor
var ViewModel = function(){
var self = this;
self.someProperty = ko.observable("abc");
self.anotherProperty = ko.observable("xyz");
self.someComputedProperty = ko.computed(function(){
return self.someProperty() self.anotherProperty();
});
};
<input data-bind="value: someProperty"/>
<input data-bind="value: anotherProperty"/>
<p data-bind="text: someComputedProperty"></p>
http://knockoutjs.com/documentation/computedObservables.html belgelere bildiren fark ettim "...açıklayıcı bağlantıları sadece uygulanır hesaplanan observables olarak", yani bana bunları açıkça benim viewmodels kullanmak için gerek yok anlamına mı geliyor?
CEVAP
Eğer hesaplanan senin gözlemlenebilir tek amacı basit bir karşı bağlayıcı yapmak için ise, o zaman bir işlevi kullanarak eşdeğer olacaktır. Bağlantılar bağımlılıkları izlemek için hesaplanan gözlemlenebilir içinde uygulanır, observables herhangi bir değişiklik olduğunda yeniden tetik bağlama.
Burada bir fonksiyon vs. bilgisayarlı observables hakkında dikkate almanız gereken birkaç şey
hesaplanan gözlemlenebilir değeri sadece bir bağımlılık güncellenir oluşturulduğunda ve güncelleştirilmesi, önbelleğe alınır. Normal bir işlev için, mantığı her zaman yürütmek gerekir. Eğer birçok şey bu değeri (koleksiyonundaki her öğe üst bir değer karşı bağlayıcı olduğunu söylüyorlar) bağlı ise, o zaman bu mantık, tekrar ve tekrar çalışma almak olacaktır.
JavaScript de senin gibi hesaplanan observables kullanabilirsiniz diğer observables. Bu onlara karşı manuel abonelikleri oluşturma ve diğer computeds onları (bir işlevi çağırmadan da bu bağımlılık yaratacak) bağlı anlamına gelir.
ko.utils.unwrapObservable
gibi KO normal yardımcı yöntemler hakkında genel bir fonksiyon olarak çağırmak için ihtiyacınız olup olmadığını belirlemek için kullanır veya değerini almak için kullanabilirsiniz.eğer sonuçta istediğiniz gemi değerine sunucu, bir bilgisayarlı gözlemlenebilir olacak doğal görünür senin JSON çıkışı sırasında bir değer olduğu sonucu normal çalışmaz sadece kaybolduğunda dönüştürülmüş JSON (sen yapmak gerekir daha fazla iş doldurmak için bir özellik bu işlevi ilk).
Nasıl nakavt'/$root içinde bir ps...
Nakavt Gözlemlenebilir bir Dizi sırala...
Eğer data: 'tanımsız' bir iş...
Bir WordPress kullanmak bir işlevi içi...
Çoklu işlem: Havuz.bir harita işlevi b...