问题标签 [ko.dependentobservable]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
4796 浏览

jquery - Knockout JS 中的依赖 Observable 数组

我已经开始使用 knockoutjs 并做一些简单的绑定/依赖绑定。我的目标是<select>根据另一个列表的值填充1 个<select>列表。两者都是从我的 asp.net 网络服务的 ajax 调用中加载的。

所以我有两个<select>清单

然后我的 javascript 看起来像这样:

目前这可以按预期工作,但我认为我做错了,因为代码看起来很长,我可以在不使用更少代码的情况下做到这一点。另外,我加载的availableModels方式显然是不正确的,因为我使用了一个名为dependentObsevable UpdateModels,我添加它是为了availableModels根据selectedMake().text

我希望这是有道理的,你可以指出一个改进的版本吗?或者简单地告诉我如何根据 Make 选择重新加载模型?

非常感谢,

0 投票
1 回答
1103 浏览

javascript - 淘汰赛:嵌套的dependentObservable - 不起作用

我是 Knockout JS 的新手。我需要将嵌套数组绑定如下

名称:下拉

电子邮件:选定用户的姓名

联系方法类型:下拉列表中选择了 ContactInfo 中的联系方法类型

联系人值:来自 ContactInfo 的实际值

我的姓名、电子邮件和联系方式有效。我需要知道如何在下拉列表中选择联系人方法类型值,并且同样需要绑定到联系人值。

我收到以下错误 错误:无法获取属性“ContactMethodType”的值:对象为空或未定义

}

HTML 代码

0 投票
2 回答
23429 浏览

validation - 手动获取淘汰赛以重新评估dependantObservable

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

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

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

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

有任何想法吗?