2014-04-21 5 views
2

MVC C# 프로젝트에서 녹아웃을 사용합니다. 내 웹 페이지에서 장바구니 버튼을 가지고 있으며 아래의 코드를 사용하여 장바구니를 모달 대화 상자로로드합니다. 이 코드는 처음 작동하지만 쇼핑 카드를 다시 클릭하면 작동하지 않습니다. 이 문제가 ko.applyBindings (new CartViewModel())과 관련되어 있음을 알고 있습니다.하지만 해결 방법이 없습니다.녹아웃 바인딩이 두 번째로 작동하지 않습니다.

모든 솔루션과 아이디어를 환영합니다.

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

답변

2

에만 #ShoppingCartDialog 바인딩을 적용해야

ko.applyBindings(new CartViewModel(), "ShoppingCartDialog"); 
1

시도해 볼 수있는 것은 바인딩을 먼저 제거한 다음 바인딩을 다시 적용하는 것입니다. 당신은 아마 또한 단지 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'); 
    }); 
});