backbone-js:如何默默地初始化一个新的集合?
我一定是在做一些愚蠢的事情,或者可能错过了 Backbone 文档的一些关键部分,但我无法理解为什么当我以这种方式初始化新集合时 Model.validate 函数会触发: http://jsfiddle.net/5a3k/QSeH6/ ..有什么想法我出错了吗?
编辑:更改标题
I must be doing something dumb, or maybe missing some crucial part of the Backbone documentation, but I cant understand why the Model.validate function is firing when I initialize a new Collection in this way: http://jsfiddle.net/5a3k/QSeH6/ ..any ideas where I'm going wrong?
edit: changed title
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
通过执行这一行:
您可以使用一个模型创建新集合。构造函数中传递的所有模型都将添加到集合中。每个添加的模型都经过验证。
详细信息:
this.reset()
(来源)。.reset()
会默默地将所有模型添加到集合中 (来源)。.add()
将为每个模型调用内部._add()
(来源)。._add()
将调用.prepareModel
来检查模型是否有效(来源)。更新(基于问题中的编辑):
仅当模型不是
Backbone.Model
的实例时才执行model.validate
(来源)。因此,如果您使用创建集合
,则模型是
Object
的实例。但如果您使用:则模型是 Backbone.Model 的实例,并且验证将被跳过。
By executing this line:
You create new collection with one model. All models passed in the constructor will be added into the collection. Each added model is validated.
Details:
this.reset()
(source)..reset()
will silently add all the models into the collection (source)..add()
will call internal._add()
for each model (source).._add()
will call.prepareModel
which is checking if the model is valid (source).Update (based on edit in the question):
model.validate
is executed only if the model is not instance ofBackbone.Model
(source).So if you create a collection using
then the model is instance of
Object
. But if you use:then the model is instance of
Backbone.Model
and validation is skipped.