如何更新绑定或删除knockoutjs中的早期绑定

khu*_*ram 1 knockout-mapping-plugin knockout.js

我有以下代码从ajax调用获取数据并绑定到我的页面的不同部分.

$.getJSON("api/RedeemProduct", { 'productId': productId }, function (data) {
    categoryViewModel = ko.mapping.fromJS(data[0].WishlistProduct.WishlistCategory);
    ko.applyBindings(categoryViewModel, $('section.intro').get(0));

    activityTypesViewModel = ko.mapping.fromJS(data);
    ko.applyBindings(activityTypesViewModel, $('.categories-gallery .frame').get(0));

    activeActivityViewModel = ko.mapping.fromJS($('.categories-gallery .frame .category.active').data('wishlist-activity'));
    ko.applyBindings(activeActivityViewModel, $('#details-box').get(0));
Run Code Online (Sandbox Code Playgroud)

请参阅代码中的第一行,我将获取特定产品的数据.下次如果我使用相同的代码来绑定不同产品的数据,则绑定不会被更新,而是因为调用ko.applyBindings()而多次添加相同的产品

我该怎么做才能删除旧的绑定并将新数据绑定到这些部分?

Kye*_*ica 8

停止使用ko.applyBindings多次.我觉得这需要进入标签维基.

永远不要这样做.

调用ko.applyBindings一次(每个元素,如果这是你如何做,但仍然一次).之后,更新viewmodel将自动更新绑定元素.这就是绑定的全部要点.