Javascript BackboneJS:模型验证中的collection.pluck()
我希望我的模型验证重复条目,因此我需要在模型中访问集合 我将Backbone.JS与Require.JS一起使用,这使它更容易混淆。 我似乎无法将我的集合作为模块的依赖项加载 我试着在视图中进行验证,但我想最好的做法是将验证保持在模型中应该的位置 有什么建议吗?来自主干收集: 如果要向集合中已存在的集合添加模型,则将忽略这些模型,除非传递{merge:true} 在Javascript BackboneJS:模型验证中的collection.pluck(),javascript,backbone.js,requirejs,Javascript,Backbone.js,Requirejs,我希望我的模型验证重复条目,因此我需要在模型中访问集合 我将Backbone.JS与Require.JS一起使用,这使它更容易混淆。 我似乎无法将我的集合作为模块的依赖项加载 我试着在视图中进行验证,但我想最好的做法是将验证保持在模型中应该的位置 有什么建议吗?来自主干收集: 如果要向集合中已存在的集合添加模型,则将忽略这些模型,除非传递{merge:true} 在add-方法中,哪个转换为: 基本上,这将胜过添加任何具有重复的id、cid或idAttribute的模型 如果这还不够,那么我建议
add
-方法中,哪个转换为:
基本上,这将胜过添加任何具有重复的id
、cid
或idAttribute
的模型
如果这还不够,那么我建议您在视图中进行验证,因为将模型的集合作为依赖项引入到确切的模型中会引入循环依赖项,例如,您需要集合来编译模型,但也需要模型来编译集合
因此,如果需要确保没有向集合中添加与该集合中已存在的模型具有完全相同属性的模型,请在视图中执行此操作。它看起来像这样:
if (collection.where(modelToBeAdded.toJSON()).length == 0) {
collection.add(modelToBeAdded);
}
谢谢我只是想确保在视图中进行验证不被认为是“黑客式”的实现。实际上,我有两个键,比如key1和key2,它们在集合中必须是唯一的。假设一个模型的key1是123,key2是456,一个新模型的key1不能是456,而且在模型中似乎没有办法做到这一点。
if (collection.where(modelToBeAdded.toJSON()).length == 0) {
collection.add(modelToBeAdded);
}