谁能帮助理解这个 Knockout Observable?

Posted

技术标签:

【中文标题】谁能帮助理解这个 Knockout Observable?【英文标题】:Anybody who can help understand this Knockout Observable? 【发布时间】:2019-01-22 06:12:41 【问题描述】:

我是一个完全的软件开发初学者,被介绍到一个我很难理解和知道从哪里开始的项目

this.isConfirmationCar = ko.computed(() => 
  if (this.selectedTemplate() && this.selectedTemplate().Id ===
     <number>Enums.PolicyEmailTemplates.ConfirmationOfCoverCar) 
       return true;
   else 
       return false;
  
);

【问题讨论】:

【参考方案1】:

它看起来返回一个布尔值并将其存储在this.isConfirmationCar 中。 这取决于定义为的参数是真/假 -

 if (this.selectedTemplate() && this.selectedTemplate().Id === Enums.PolicyEmailTemplates.ConfirmationOfCoverCar)  return true;  else  return false; 

仅供参考 - Knockoutjs 有一个很棒的网站,里面有很好的教程http://learn.knockoutjs.com/#/?tutorial=intro

介绍了值得一看的 ko.computed 函数!

【讨论】:

【参考方案2】:

你所拥有的是一个computed observable,它只不过是一个在其主体tracks 内部使用的任何其他可观察到的函数。它不仅会跟踪它,而且会在那些被跟踪的可观察值发生变异时一次又一次地执行自己。

计算的 observables 非常有用。请注意,它们在如何定义它们方面有各种“选项”以及一些有趣的siblings,例如pureComputed observables。

在此示例中,计算出的 isConfirmationCar 用于跟踪其他 observables selectedTemplateselectedTemplate 的值。当任何通过刷新其值计算的更改时,这就是为什么在此上下文中使用它来跟踪isConfirmationCar

希望这会有所帮助。

【讨论】:

以上是关于谁能帮助理解这个 Knockout Observable?的主要内容,如果未能解决你的问题,请参考以下文章

Knockout 双向绑定的理解

如何处理Knockout的分页

我没有完全得到“存在”的部分。谁能帮助我更好地理解它? [关闭]

如何使用 Knockout.js 将多个 View 绑定到单个 ViewModel

以为我了解 Knockout.js,现在我不太确定

谁能帮我理解为啥在“后缀”起作用时“前缀”不起作用以及如何解决这个问题?