首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Knockout订阅的循环依赖关系

使用Knockout订阅的循环依赖关系
EN

Stack Overflow用户
提问于 2014-06-27 09:53:03
回答 2查看 525关注 0票数 1

下面的代码是否可能修复使用Knockout.js订阅的循环依赖关系。

代码语言:javascript
复制
this.observable1.subscribe(function(value){
self.observable2("someValue");
});

this.observable2.subscribe(function(value){
self.observable1("someValue");
});

其中,"self“是"this”的别名,observable1链接到组合框,observable2链接到日期选择器。

请建议

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-06-28 08:51:46

正如@Origineil所说,您可能需要重新考虑您的解决方案。

但是,如果你真的想保持当前的解决方案,你可以使用一个标志打破循环。

代码语言:javascript
复制
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");
  }
});
票数 1
EN

Stack Overflow用户

发布于 2014-06-30 12:40:13

我使用了一个全局变量和逻辑,如下所示,它对我来说很好,

代码语言:javascript
复制
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");
}
 });

多亏了霍克,你的逻辑看起来也很有效。谢谢大家的评论和回答。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24448935

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档