【问题标题】:How to suspend and unsuspend property in order to work as expected in knockout.js如何暂停和取消暂停属性以便在 knockout.js 中按预期工作
【发布时间】:2021-12-21 03:00:00
【问题描述】:

我有一个函数setServiceId(serviceId),通过单击某个按钮调用它,然后我传递该服务的 id。

我还有serviceIdSubscrier = vm.selectedServiceId.supsendableSubscribe(changeServiceId),它监听serviceId的每一个变化(例如,如果我点击id = 5151,然后点击5152,这个事件将被触发并调用一个函数changeServiceId) 但是,现在,我希望当我多次单击相同的服务时也被触发,因为它会在 id 不同时触发(例如,我单击服务 id=5151,然后再次单击 id=5151),我想具有与我单击不同 ID 相同的行为

这是我的全部功能:

function setServiceId(serviceId) {
    vm.selectedServiceId(serviceId);
    jQuery.post(rootUrl + 'spaemployeeadmin/GetFirstSearchFilterDateForParent', {
        locationId: vm.selectedLocationId()
    })
        .done(function (data) {
            var dateObj = { day: data.Day, month: data.Month, year: data.Year };
            vm.refreshData(dateObj, null);
        });
}

serviceIdSubscrier = vm.selectedServiceId.supsendableSubscribe(changeServiceId)

function changeServiceId() {
    var currentService = getService();
    if (vm.combineSchedules()) {
        vm.selectedService(currentService || {});
        refreshAllowedTimes().then(function () {
            setTimeByPreviousSelection();
            checkToPushCriteria();
        });
    } else {
        refreshOnServiceType();
    }
}

【问题讨论】:

    标签: javascript knockout.js binding


    【解决方案1】:

    如果 serviceId 是一个对象,您可以将其更改为具有相同值的另一个对象,并且会注册更改。

    5 === 5 //True
    {id: 5} === {id: 5} //False
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-16
      • 1970-01-01
      • 2022-01-06
      • 1970-01-01
      • 2016-09-10
      • 2016-03-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多