【发布时间】:2012-05-31 12:13:06
【问题描述】:
我在 Knockout 中有一个 ViewModel,它主要来自映射插件(即动态)。这工作正常。但是,现在我的客户希望我确保所有输入在提交到服务器之前都已删除空格。显然,修剪代码非常简单,但是对于 Knockout 来说相对较新,我不确定该代码到底应该放在哪里。我读到了extenders,但这似乎非常冗长和重复,要返回并将其添加到每个可观察对象中。另外,我什至不确定我是否可以对动态生成的 observables 执行此操作(例如,映射插件)。
是否有任何中心机制我可以扩展/覆盖,每次可观察到的变化时我可以注入一些修剪代码?基本上我试图避免花费数小时浏览我们所有的表单并添加如果我不需要,请在 HTML 中使用特殊的绑定语法。
谢谢。
【问题讨论】:
-
您提到它们只需要在提交之前进行修剪。使用 ko.mapping.toJS(model) 取消映射你的 observables,然后编写一个帮助器来递归每个属性并修剪它。
-
嗯。这还算公平。也许我会试试。虽然我希望有一种方法可以在每次可观察更新时运行一些代码。
-
FWIW,因为我在输入更改时运行验证器,所以我只是在开始时运行修剪功能。
-
很多好的答案,但如果不仔细阅读代码并更新每个页面上的每个 observable,仍然没有任何方法可以全面发挥作用。您是否找到了自动执行此操作的方法?
标签: knockout.js