我正在开发一个网站,该网站每 5 秒更新一次页面上的值,它调用远程数据库并通过 Get Json 调用返回 MVC 模型,然后调用
viewModel = ko.mapping.fromJS(model)
.
然后,我每 5 秒使用另一个 Get 调用更新此视图模型,然后调用此映射调用
viewModel = ko.mapping.fromJS(model, viewModel).
我的 HTML 元素上的绑定是正确的,因为从数据库中检索的原始模型显示在屏幕上,但是当模型上的 IsVisible 属性没有任何反应时,即表行应该设置为不可见,并且应该设置另一个可见。
在每次更新时,模型应该不同,行设置为可见或不可见以及其他跨度的文本更新,这部分工作正常,更新显示在页面上,只是可见性没有改变。
HTML 发挥可见的不可见的问题,用 Javascript 的更新调用。
模型中的所有变量都被正确调用我无法将模型发布给公众。
<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>