我尝试创建一个ajax-refresh购物车面板。我的购物车已列出但我无法在$ .getJSON回调函数中刷新它。我的观点和代码是;
var cartViewModel = {
Currencies: ko.observableArray()
};
$(function () {
ShowCart();
});
function AddToCart(i, a) {
$.getJSON('@Url.Action("AddToCart", "Products")/' + i + '?Amount=' + a, null, function (d) {
if (d)
ShowCart();
});
}
function ShowCart() {
$.getJSON('@Url.Action("GetCart","Products")', null, function (c) {
cartViewModel.Currencies = ko.observableArray(c);
cartViewModel.Currencies.valueHasMutated();
ko.applyBindings(cartViewModel);
});
}
和
$.getJSON
如何刷新{{1}}回调中的绑定?
答案 0 :(得分:3)
我认为你的问题是你在视图模型中覆盖了observable。
您需要做的就是将新值传递给现有的observable。
请改为尝试:
function ShowCart() {
$.getJSON('@Url.Action("GetCart","Products")', null, function (c) {
cartViewModel.Currencies(c);
});
}