我想知道当我在模型上调用 set
或 save
方法时如何转换数据。具体将输入的日期字符串转换为纪元时间。
我知道我可以在 View 中转换它,但据我所知,这对我的验证来说效果不是很好。
型号代码为here如果你有兴趣。
感谢您的帮助!
最佳答案
我可以收集到的信息有两种:
1 在你的 View 中转换它们
这意味着您可以为 View 滚动自己的转换或使用类似 Backbone.modelbinder 的东西为您进行转换。然后你必须修改你的验证方法来接受一个纪元日期。我个人更喜欢这个,我认为它适合 UI 来处理验证用户输入的格式正确和转换为正确的单位,并让模型处理验证值是否在可接受的限制内。
2 在你的模型中转换它们
Backbone 不提供开箱即用的功能。如果您将某物设置为某物,则没有简单的方法可以将其转换为其他东西,尤其是在 validate
和 set
之间。基本上你最好的选择是推出你自己的 set
-function with something like
// Inside the set function
...
if (!this._validate(attrs, options)) return false; // real line in the set func
// insert something like this, after validate you know the values are eligible for conversion
attrs = this.convert(attrs); // a custom func that converts attributes to right units
...
// set continues as usual
希望这对您有所帮助!
关于javascript - Backbone.js 在保存前修改模型中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11964713/