我在MVC c#项目中使用knockout。我的网页上有购物车按钮,并使用下面的代码将购物车加载为模态对话框。 这段代码第一次有效,但是当我再次点击购物卡时,它不起作用。我知道这个问题与 ko.applyBindings(new CartViewModel()); 有关,但我不知道如何解决它,
欢迎任何解决方案和想法。
$("#ShoppingCartButton").on("click", function () {
$("#ShoppingCartDialog").load("/Order/ShoppingCart", function () {
ko.applyBindings(new CartViewModel());
$("#ShoppingCartDialog").modal('show');
});
});
答案 0 :(得分:3)
您只应为#ShoppingCartDialog,
应用绑定ko.applyBindings(new CartViewModel(), "ShoppingCartDialog");
答案 1 :(得分:1)
您可以尝试先删除绑定,然后再次应用绑定。您可能还希望将viewmodel绑定到shoppingCartDialog
:
$("#ShoppingCartButton").on("click", function () {
//remove the binding
ko.cleanNode($("#ShoppingCartDialog")[0]);
$("#ShoppingCartDialog").load("/Order/ShoppingCart", function () {
//bind a new viewModel, just to the shoppingcartdialog.
ko.applyBindings(new CartViewModel(),$("#ShoppingCartDialog")[0]);
$("#ShoppingCartDialog").modal('show');
});
});