Bağımlı bir gözlemlenebilir üzerinde bir commit()/peek() tipi işlevler kullanan Ko'nun özel bir genişletilmiş sürümünü kullanıyorum, böylece verileri yalnızca veritabanına bağlıysa (Tamam) formda saklıyorum ve iptal edildi.Neden onay kutusu tıklatıldığında onay kutusu yalnızca işaretlendiğinde yazılır?
Sorun şu ki, bir onay kutusunu işaretlediğimde, yazma işlevi korunan gözlenebilirde doğru çağrılır. Ancak, onay kutusunun işaretini kaldırırsam, yazma işlevi çağrılmaz, bu nedenle model MVC denetleyicime gönderildiğinde, onay kutusu boolean hala TRUE olur.
Nakavt neden FALSE değerini yazmıyor?
KODU İLE GÜNCELLEME SORU:
gösteri yapmasını bu JsFiddle bakın: http://jsfiddle.net/b2Qu2/3/
Minör konu demo ile 1 diğer sorun olduğunu
Not - için bazı nedenlerden dolayı, onay kutusunu işaretlediğimde/işaretini kaldırdığımda, bağımlı bir değere bağımlı olsa bile, göz atılan değer UI'de güncellenmez. Yine de 'peek' düğmesine tıklayarak değeri gözden geçirebilirsiniz.
Başlıca Sayı
sorun yeniden oluşturmak için:
1) Click 'peek' button: Shows FALSE - CORRECT
2) Check IsAdmin checkbox
3) Click 'peek' again: Shows TRUE - CORRECT
4) Uncheck IsAdmin
5) Click 'peek' again: SHOWS TRUE - INCORRECT!!
Örnek senaryo
bir iletişim düşünün Yönetici kullanıcısı için bir onay kutusu ile gösterilir. Sadece 1 yönetici kullanıcısı ayarlanabilir ve bir yönetici kullanıcısı varsa sunucu geçerli/geçersiz yanıt verir. Kullanıcı daha sonra onay kutusunu işaretler, ancak şimdi viewmodel onay kutusunun HER ZAMAN doğru olduğunu düşünüyor? Korumalı Olasılık kullanmanın nedeni, sunucu yanıtı başarılı olursa, commit() yöntemi çağrılır, böylece her şey kullanıcı arabiriminde kalıcıdır. Kullanıcı diyaloğu iptal ederse veya bir hata oluşursa, orijinal değerlerin üzerine yazılmaz.
Kodunuzun daha paylaşabilir miyim, bildiğim kadarıyla, bağlı olduğu nasıl olduğu/kullanıldığı? –
@RP Niemeyer - Sorumu bir kodla güncelledim. Bu biriyle mücadele! – jaffa