有没有办法在首次创建新模型时抑制Backbone.js中的模型验证?
在我的应用程序中,我有一个包含任意数量模型的集合,这些模型表示为列表项.用户可以单击每个项目上的按钮,在当前项目下方插入新的空项目.显然,空项目验证失败,因为我不希望以后保存空项目.
当我创建新项目时,我无法知道可能的默认值,因此使用有效数据预先填充新模型似乎不是一个选项.
有什么建议?
更新:在处理与切向相关的问题时,我意识到我使用的是Backbone.js版本0.9.0.当这个版本发布时,其他人遇到了同样的问题,他们在GitHub的这个问题上抱怨.
Jeremy修改了0.9.1中的验证以解决此问题.将(临时)空模型添加到集合中是一个有效的实际用例.您可以在视图中处理新的空模型,但是如果您正在管理像我这样的项目列表,那么除了您的必须收集之外,这会强制您拥有项目视图的集合(包括空的项目视图).有效的模型.对于一个原本简单的场景来说,这是一个非常笨重的解决方法.很高兴这个问题得到解决.
您不应该添加无效模型:)
深入研究 Backbone 源代码(至少 0.9.1)表明可以通过将选项传递给 add 方法来规避该机制:
var Mod=Backbone.Model.extend({
validate: function(attrs,opts) {
if (opts.init) return;
return "invalid";
}
});
var Col=Backbone.Collection.extend({
model:Mod
});
var c=new Col();
c.add({},{init:true});
console.log(c.length);
Run Code Online (Sandbox Code Playgroud)
小提琴: http: //jsfiddle.net/jZeYB/
警告:它可能会破坏整个线路。
| 归档时间: |
|
| 查看次数: |
2638 次 |
| 最近记录: |