【发布时间】:2013-05-25 02:12:43
【问题描述】:
有没有办法在 KnockoutJS 中为 ViewModel 设置全局配置?
两种可能的用例可能是:
- 对 ViewModel 中的每个 observable 应用扩展器。例如,如果我在这里编写一个修剪函数:Automatically trim whitespace from all observable values,我怎样才能将它应用于每个 observable?
查看 Knockout Validation Plugin 源代码,我发现在创建验证的Observable() 时,它实际上将所有子字段分组到一个 observableArray() 中,然后遍历并应用 obj.extend({ validatable: true });。创建这样的循环是最好的方法吗?像self.firstName = ko.observable().trimmed()这样的唯一其他替代编写代码吗?
- 将默认事件从“change”全局更改为“afterkeydown”。
我看到我可以使用<input data-bind="value: name, valueUpdate: 'afterkeydown'" />,但有没有办法可以通过编程方式或默认将其应用于每个输入? 这个仍然是首选解决方案吗:How can I get Knockout JS to data-bind on keypress instead of lost-focus?
- 最后,是否有另一种方法可以在 更改和按键时触发事件?
谢谢!
【问题讨论】: