gpt4 book ai didi

javascript - ko.dependentObservable 这个方法如何巧妙地理解依赖关系?

转载 作者:行者123 更新时间:2023-11-28 16:24:24 24 4
gpt4 key购买 nike

我正在用knockoutjs 玩他们的示例,我已经编辑了原始代码,如下所示。 fullName 属性分配为 dependentObservable,并且此方法肯定知道 fullName 方法内的依赖项,因此 fullName 方法仅在依赖项发生更改时才有效。

如果我从 fullName 方法中删除 this.LastName() ,那么更改 lastName 属性不会导致调用 fullName 方法。

我想知道这是怎么发生的。

var viewModel = {
firstName: ko.observable("Bert"),
lastName: ko.observable("Bertington")
};

viewModel.fullName = ko.dependentObservable(function() {
alert('worked');
return this.firstName() + " "+ this.lastName() ;
}, viewModel);


// Activates knockout.js
ko.applyBindings(viewModel);

最佳答案

Knockout 中有一个依赖跟踪机制,在评估 dependentObservables 时使用。关键是访问可观察对象必须通过一个函数(您必须调用 this.firstName())。除了返回firstName之外,Knockout还将dependentObservable添加为firstName的订阅者。当 firstName 更新时(再次必须通过该函数),所有订阅者都会收到通知。

此外,每次评估 dependentObservable 时都会重新评估这些依赖关系,因此 dependentObservable 的依赖关系实际上会随着时间的推移而发生变化。

关于javascript - ko.dependentObservable 这个方法如何巧妙地理解依赖关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8495375/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com