私は5秒ごとにページの値を更新し、リモートデータベースを呼び出し、Get Json呼び出しでMVCモデルを返すWebサイトで作業しています。電話番号:Knockout.js - ko.mapping.fromJS - 可視バインディングが更新されない
viewModel = ko.mapping.fromJS(model)
私は、このマッピングコールを別のGet呼び出しを使用して呼び出し、このビューモデルごとに5秒を更新しています、その後
viewModel = ko.mapping.fromJS(model, viewModel).
バインディングがデータベースから取得されたオリジナルモデルとしての私のHTML要素で正しいですモデル上のIsVisibleプロパティが何も起こらないとき、つまり表の行を不可視に設定し、別の設定をvisibleに設定する必要があります。
各更新でモデルが異なる必要があります。行が表示または非表示に設定され、他のスパンのテキストが更新され、この部分が機能し、更新がページに表示されます。
HTMLは、目に見えない目に見える問題を引き起こし、更新呼び出しのJavascriptを使用します。
モデルからのすべての変数が正しく呼び出されましたモデルを公開することはできません。 、という出力selections.IsVisible
の値を失敗
ko.mapping.fromJS(model, {}, viewModel);
、それが解決できる形式であることを確認してください。私はあなたが時々のviewmodelを更新するとき、空のマッピングを提供する必要があることがわかり
<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>
最初のデータの読み込みやその後の更新でも、表示されるコードは機能しないと言っていますか? –
申し訳ありませんが、本来の動作で正しい行が表示されますが、現在表示されている行を非表示にすることはできませんが、非表示の行に設定されます。 –