【问题标题】: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');
          });
      });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-01-10
        • 2015-12-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-11-14
        • 2013-03-01
        • 2013-12-27
        相关资源
        最近更新 更多