イベントの後に強制的にリロードノックアウトを試み、データをリフレッシュしようとしています。私のビューコードは次のようになります。ノックアウトトリガーovservableビューモデルの関数からのリフレッシュ
var targeturl = "/ajax{{ event_id }}/";
var blockurl = "/ajax/block/{{ event_id }}/";
var page = "0";
$(function() {
$.getJSON(targeturl + page, function (data) {
var midPoint = Math.floor((data.length)/2);
var data1 = data.slice(0, midPoint);
var data2 = data.slice(midPoint);
// add block, feature and download ids
data1.forEach(function (item) {
item.block_id = "block-" + item._id;
item.feature_id = "feature-" + item._id;
item.download_id = "download-" + item._id;
});
data2.forEach(function (item) {
item.block_id = "block-" + item._id;
item.feature_id = "feature-" + item._id;
item.download_id = "download-" + item._id;
});
var viewModel = {
socialData1: ko.observableArray(data1),
socialData2: ko.observableArray(data2),
blockItem: function(item) {
var tempid = item.block_id.split("-")[1];
$.getJSON(blockurl + tempid, function (data) {
console.log(data);
socialData1.valueHasMutated();
socialData2.valueHasMutated();
})
.error(function() {
alert('error');
});
}
};
ko.applyBindings(viewModel);
})
.error(function() {
alert('error');
});
});
どのように私はviewModel
内blockItem
機能でノックアウトのリロードを強制します。
$.getJSON
関数を実行して、更新されたデータを取得します。
あなたのビューモデルは 'getJSON'関数の外で定義する必要があります。 'getJSON'関数内で、そのメンバを生成します。 –