下面的代码是否可能修复使用Knockout.js订阅的循环依赖关系。
this.observable1.subscribe(function(value){
self.observable2("someValue");
});
this.observable2.subscribe(function(value){
self.observable1("someValue");
});其中,"self“是"this”的别名,observable1链接到组合框,observable2链接到日期选择器。
请建议
发布于 2014-06-28 08:51:46
正如@Origineil所说,您可能需要重新考虑您的解决方案。
但是,如果你真的想保持当前的解决方案,你可以使用一个标志打破循环。
var isInnerUpdate = false;
this.observable1.subscribe(function(value){
if (isInnerUpdate) {
isInnerUpdate = false;
} else {
isInnerUpdate = true;
self.observable2("someValue");
}
});
this.observable2.subscribe(function(value){
if (isInnerUpdate) {
isInnerUpdate = false;
} else {
isInnerUpdate = true;
self.observable1("someValue");
}
});发布于 2014-06-30 12:40:13
我使用了一个全局变量和逻辑,如下所示,它对我来说很好,
var enableSubcribe = false; //global variable
this.observable1.subscribe(function(value){
enableSubcribe = true;
self.observable2("someValue");
enableSubcribe = false;
});
this.observable2.subscribe(function(value){
if(!enableSubcribe ){
self.observable1("someValue");
}
});多亏了霍克,你的逻辑看起来也很有效。谢谢大家的评论和回答。
https://stackoverflow.com/questions/24448935
复制相似问题