在我的项目中,服务器发送的数据发生了变化。小的变化,一些 foo 属性变成了 foobar,但这已经在客户端造成了严重破坏,因为我没有意识到这一点。我花了很长时间才弄清楚错误来自哪里。
有什么东西(现有的或计划的)可以让主干告诉它没有收到有效的数据吗?
编辑:更准确地说,我的想法是为 BB 提供某种模型定义对象,详细说明:字段名称、字段长度、必需或可选。通用的东西。
在我的项目中,服务器发送的数据发生了变化。小的变化,一些 foo 属性变成了 foobar,但这已经在客户端造成了严重破坏,因为我没有意识到这一点。我花了很长时间才弄清楚错误来自哪里。
有什么东西(现有的或计划的)可以让主干告诉它没有收到有效的数据吗?
编辑:更准确地说,我的想法是为 BB 提供某种模型定义对象,详细说明:字段名称、字段长度、必需或可选。通用的东西。
覆盖模型上的validate 方法。Backbone 默认有一个空实现,你可以根据你的应用手动检查属性。
当您调用 set 或 create 创建新模型时,Backbone 会自动调用 validate。
如何使用:(来自文档)
如果出现错误,则返回除 undefined 之外的任何值/对象,否则不返回任何值/对象(未定义)。
如果检测到错误,您的模型将保持不变。
var Chapter = Backbone.Model.extend({
validate: function(attrs, options) {
if (attrs.end < attrs.start) {
return "can't end before it starts";
}
}
});