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