gpt4 book ai didi

validation - 手动 knockout 以重新评估依赖的 Observable

转载 作者:行者123 更新时间:2023-12-03 09:46:40 24 4
gpt4 key购买 nike

我不确定这是否可能,但我有一个场景,我有一个验证系统,当某些东西通过依赖的 observable 变得有效/无效时,它会通知我的验证系统。现在,当用户填写表单时,这非常有用,因为dependantObservable 被驱动了底层可观察值的变化。 (即,如果 Name 属性发生变化,它将重新评估 isValid 依赖的可观察对象,这将反过来通知我的绑定(bind)哪个 Hook 到验证系统)。

现在我的问题是,如果用户根本不触摸表单而直接提交,它将不会触发绑定(bind),因为任何可观察对象的基础值都没有改变,所以没有订阅者会知道任何验证更改正在发生。理想情况下,我不想遍历每个 observable 并重新为其分配当前变量以插入验证评估,这反过来又会触发验证状态的变化。所以我真正想做的就是得到这个isValid由于缺少更好的词,dependantObservable 进行刷新。

无论哪种方式看起来都很讨厌,但我的选择似乎是:

1) 对所有被验证的 observables 强制改变值(可怕)
2)强制重新评估 isValiddependantObservable 以触发订阅者(不那么可怕,但仍然很糟糕)
3) 重写验证库以暴露一个forceValidation()该函数会以某种方式触发所有内容进行重新评估,从而绕过底层可观察对象触发验证管道的需要。

有任何想法吗?

最佳答案

在计算出的 observable (isValid) 上,您可以调用 notifySubscribers(currentValue) ,它将通知所有订阅者当前的值。它不会重新评估计算的值,只会用当前值通知订阅者。

关于validation - 手动 knockout 以重新评估依赖的 Observable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9519333/

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