编程语言
首页 > 编程语言> > javascript-Backbone.js在保存之前修改模型中的数据

javascript-Backbone.js在保存之前修改模型中的数据

作者:互联网

我想知道当我在模型上调用set或save方法时如何转换数据.专门将输入的日期字符串转换为纪元时间.

我知道我可以在视图中进行转换,但是据我所知,这与我的验证不能很好地配合.

如果您有兴趣,则型号代码为here.

谢谢你的帮助!

解决方法:

我可以收集的信息有两种选择:

1在您看来转换它们

这意味着您可以为视图滚动自己的转换,也可以使用Backbone.modelbinder之类的东西为您进行转换.然后,您必须修改您的validate方法以接受一个纪元日期.我个人更喜欢这一点,我认为它适合UI处理验证用户输入的格式正确并转换为正确的单位,并让模型处理验证值是否在可接受的限制之内.

2在模型中转换它们

骨干网不提供这种现成的功能.如果将某物设置为某物,则没有简便的方法将其转换为其他东西,尤其是在验证和设置之间.基本上,最好的选择是将自己的set-function放到类似

// 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

希望这可以帮助!

标签:backbone-js,javascript
来源: https://codeday.me/bug/20191127/2076892.html