BackboneJS:模型验证中的collection.pluck()
BackboneJS: collection.pluck() in model validation
我希望我的模型验证重复条目,因此我需要在模型中访问集合。
我正在使用Backbone.JS和Require.JS一起使用,这使得它有点令人困惑。我似乎无法加载我的集合作为模块的依赖项。
我试着在视图中做验证,但我想最好的做法是在模型中保持验证。
任何建议吗?
From Backbone Collection docs:
如果你正在向集合中添加已经存在的模型,它们将被忽略,除非你传递{merge: true}…
在add
-方法中转换为:
if (existing = this.get(model)) {
if (options.merge) {
existing.set(attrs === model ? model.attributes : attrs, options);
if (sort && !doSort && existing.hasChanged(sortAttr)) doSort = true;
}
continue;
}
基本上,这将胜过添加任何具有重复id
, cid
或idAttribute
的模型。
如果这还不够,那么我建议您在视图中进行验证,因为将模型的集合作为依赖项引入到该模型中会引入循环依赖项,例如。您需要集合来编译模型,但是您也需要模型来编译集合。
所以如果你需要确保你没有添加一个模型到一个集合中,这个集合中已经有一个模型具有完全相同的属性,在视图中做。它看起来像这样:
if (collection.where(modelToBeAdded.toJSON()).length == 0) {
collection.add(modelToBeAdded);
}
相关文章:
- 我们可以用参数对象集合而不是原始数据来调用JavaScript collection.reduce()方法吗
- Underscore each to update collection
- Symfony2 - Collection + jQuery
- Backbone - Collection.add() / Collection.create() 之间的区别
- Backbone + RequireJS: Collection.each() is not working
- MongoDB collection.find()查询挂起
- 如何从Backbone.Collection中删除模型
- 避免Meteor中Collection的持久性
- 如何在新的Meteor Collection文档中设置服务器上的created_on字段
- mongodb中db.collection.find()的返回类型是什么
- 不能从 Backbone.View 的方法调用 Backbone.collection 的方法,其中包含 require
- angularjs 中 ng-repeat 和 collection-repeat 之间的区别
- nodejs 和 MongoDB 的 collection.find() 没有响应
- Backbone.js Collection fetch()抛出未捕获类型错误:无法读取属性'idAttribu
- 为什么我的Backbone Collection没有提取数据
- 如何在amd架构的模型(主干)中调用collection函数
- 调用db.eval()中的db.collection.find()
- 如何在客户端Collection增长时立即反应性地执行代码
- Backbone.js和undercore.js将其绑定到this.collection.add
- BackboneJS:模型验证中的collection.pluck()