我在 KnockoutJS 中有一个模型类,它有多个我想订阅的值。每个订阅都将执行相同的任务,如下所示:
function CaseAssignmentZipCode(zipCode, userId, isNew) {
var self = this;
self.zipCode = ko.observable(zipCode);
self.userId = ko.observable(userId);
self.isNew = isNew;
self.isUpdated = false;
self.zipCode.subscribe(function () { self.isUpdated = true; });
self.userId.subscribe(function () { self.isUpdated = true; });
}
有没有办法将这两个调用结合起来进行订阅,以便我可以使用一个订阅来“观看”两个值?
最佳答案
为此,您可以使用计算的 observable。你只需要确保你访问了 read 函数中每个 observable 的值。会是这样的:
ko.computed(function() {
self.zipCode();
self.userId();
self.isUpdated = true;
});
因此,您获得了对两个可观察对象的依赖关系并设置了您的标志。
此外,如果您正在寻找类似“脏”标志的东西,那么您可能会考虑类似:http://www.knockmeout.net/2011/05/creating-smart-dirty-flag-in-knockoutjs.html .这个想法是你使用一个计算的 observable,它在一个对象上调用 ko.toJS() 来解开它的所有 observables。
关于javascript - KnockoutJS 订阅多个具有相同回调操作的 observables,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9278497/