Her 5 saniyede bir sayfadaki değerleri güncelleyen bir web sitesinde çalışıyorum, uzak bir veritabanına çağrı yapıyor ve Get Json aramasıyla MVC modeli döndürüyor, veKnockout.js - ko.mapping.fromJS - Görünür Bağlama güncellenmiyor
viewModel = ko.mapping.fromJS(model)
numaralı telefonu arayın.
Daha sonra bu haritalama çağrıyı başka Get çağrısı kullanarak ve çağrı bu görünüm modeli her 5 saniyede güncelleştiriyorum sonra
viewModel = ko.mapping.fromJS(model, viewModel).
bağlamaları veritabanından alınır orijinal model olarak benim HTML öğelerinde doğru olduğunu Ekranda görüntülenen ancak modelde IsVisible özelliği hiçbir şey olmadığında, yani tablo satırı görünmez olarak ayarlanmalı ve diğeri görünür olacak şekilde ayarlanmalıdır.
Her güncellemede model, diğer span'ın metin güncelleştirmesiyle birlikte görünür veya görünmez olacak şekilde ayarlanmış olarak farklı olmalıdır; bu bölüm çalışıyor ve güncelleştirmeler sayfada gösteriliyor, yalnızca görünürlük değişmiyor.
Görünmez görünmez sorunun HTML'yi, güncelleme aramasının Javascript'i ile uygulayın.
Modeldeki tüm değişkenler doğru şekilde adlandırıldı Modelini herkese açık olarak yayınlayamıyorum. Gösterge Çıkışı, selections.IsVisible
değerini
ko.mapping.fromJS(model, {}, viewModel);
Bu gerçekleşmediği takdirde ve çözebilirsiniz bir biçimde olduğundan emin olun:
<table class="SelectionTable" cellpadding="0" cellspacing="0">
<tbody data-bind="foreach: { data: markets.Selections, as: 'selections' }">
<tr class="Selection">
<td><span data-bind='text: selections.Number, visible: selections.IsVisible'></span></td>
<td><span data-bind='text: selections.Name, visible: selections.IsVisible'></span></td>
<td><span data-bind='text: selections.CurrentPrice, visible: selections.IsVisible'></span></td>
<td><span data-bind='text: selections.OpeningPrice, visible: selections.IsVisible'></span></td>
</tr>
</tbody>
</table>
<script type="text/javascript">
var viewModel;
var self;
var getUpdates = setInterval(function() {
$.getJSON(
"/Home/Get", {},
function (model) {
viewModel = ko.mapping.fromJS(model, viewModel);
});
}, 5000);
$(document).ready(
function() {
$.getJSON(
"/Home/Get", {},
function (model) {
viewModel = ko.mapping.fromJS(model);
bindViewModel();
});
});
function bindViewModel() {
ko.applyBindings(viewModel);
}
</script>
Görünen kodun, ne ilk veri yüklemesinde ne de sonraki güncellemelerde hiçbir zaman çalışmadığını mı söylüyorsunuz? –
Üzgünüz, orjinal çağrı çalışır ve doğru satırları gösterir, ancak sonraki güncelleme çağrıları şu anda görünür olanı gizlemeyecek, ancak şimdi görünmez satırlara ayarlanmayacak veya orjinal olarak gizli olanı gösterecek, ancak şimdi görünür satırlara ayarlanacaktır. –