【问题标题】:knockout binding not work for second time淘汰赛绑定第二次不起作用
【发布时间】:2014-06-05 04:40:15
【问题描述】:
我在 MVC c# 项目中使用淘汰赛。我的网页上有购物车按钮,并使用下面的代码将购物车加载为模式对话框。
此代码第一次工作,但当我再次点击购物卡时,它不起作用。我知道这个问题与 ko.applyBindings(new CartViewModel()); 有关,但我不知道如何解决它,
欢迎任何解决方案和想法。
$("#ShoppingCartButton").on("click", function () {
$("#ShoppingCartDialog").load("/Order/ShoppingCart", function () {
ko.applyBindings(new CartViewModel());
$("#ShoppingCartDialog").modal('show');
});
});
【问题讨论】:
标签:
c#
jquery
asp.net-mvc
knockout.js
knockout-mvc
【解决方案1】:
您应该只为#ShoppingCartDialog 应用绑定,
ko.applyBindings(new CartViewModel(), "ShoppingCartDialog");
【解决方案2】:
您可以尝试先删除绑定,然后再次应用绑定。您可能还想将视图模型绑定到 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');
});
});