0
私はあまり単純なビューモデルを持っています。私はobservableArray を持っています。これは、viewModel.filterCustomers
を呼び出してフィルタリングできます。これは正常に動作し、私のビューは更新されます。今私はgetCachedCustomers
を呼び出すと、observableArray customers
を復元し、UIを更新する関数を作成したいと思います。フィルタリング後にobservableArrayを更新します。
私が呼び出す場合:
viewModel.customers(viewModel.cachedCustomers());
viewModel.customers()
は更新されません。配列には依然としてフィルタリングされた要素があります。
これは私の問題の「ダムダウン」バージョンです。どんな助けもありがとうございます。
var viewModel = {
PageName: "Editor",
filteredCustomers: ko.observableArray([]),
cachedCustomers: ko.observableArray([]),
customers: ko.observableArray([]),
applyFilter: ko.observableArray([]),
getCachedCustomers: function() {
viewModel.customers(viewModel.cachedCustomers());
viewModel.customers.valueHasMutated();
console.log(viewModel.cachedCustomers());
}
};
viewModel.filterCustomers = function() {
var filter = $('#txtFilter').val();
if (filter.length < 1) {
return;
}
viewModel.applyFilter = ko.computed(function() {
viewModel.customers(ko.utils.arrayFilter(viewModel.customers(), function (item, data) {
return stringStartsWith(item.CustomerNumber().toLowerCase(), filter.toLowerCase()) || stringStartsWith(item.CustomerName().toLowerCase(), filter.toLowerCase());
}));
}, viewModel);
};