淘汰赛绑定第二次不起作用

时间:2014-04-21 06:16:21

标签: c# jquery asp.net-mvc knockout.js knockout-mvc

我在MVC c#项目中使用knockout。我的网页上有购物车按钮,并使用下面的代码将购物车加载为模态对话框。 这段代码第一次有效,但是当我再次点击购物卡时,它不起作用。我知道这个问题与 ko.applyBindings(new CartViewModel()); 有关,但我不知道如何解决它,

欢迎任何解决方案和想法。

 $("#ShoppingCartButton").on("click", function () {
      $("#ShoppingCartDialog").load("/Order/ShoppingCart", function () {
            ko.applyBindings(new CartViewModel());
            $("#ShoppingCartDialog").modal('show');
        });
   });

2 个答案:

答案 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');
    });
});