javascript - 如何暂停和取消暂停属性以便在 knockout.js 中按预期工作
问题描述
我有一个函数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();
}
}
解决方案
如果 serviceId 是一个对象,您可以将其更改为具有相同值的另一个对象,并且将注册更改。
5 === 5 //True
{id: 5} === {id: 5} //False
推荐阅读
- google-app-engine - 如何将现有的 docker 镜像推送到谷歌应用引擎
- laravel - laravel 在不应用强制转换的情况下获取数据
- c# - C#语法分析:获取类型成员
- c# - 一个视图的 2 个模型和转换不起作用
- python - `alembic revision --autogenerate` 产生冗余外键迁移
- java - 如何在java中订阅创建的对象中的属性
- ssis - SSIS 与目标 SQL Server 目标引发异常
- janusgraph - 如何在 janusgraph 中从 java/scala 客户端在服务器上创建图形
- antlr - ANTLR4 自动生成的充满错误的文件
- r - R add_row 在函数中使用时失败