我正在学习Backbone.js并通过docs阅读我很难理解下面的内容:
"If a model property is defined, you may also pass raw attributes objects, and have them be vivified as instances of the model."
看看Collection#model,他们提供了一个例子:
var Library = Backbone.Collection.extend({
model: Book
});
但是我如何从那里继续并“传递原始属性对象”?
********编辑***********
好的回顾现在我认为这意味着如果我将模型“Book”添加到Library集合中,现在我可以做 -
var lib = new Library;
lib.add([
{name: "Curious George"},
{name: "Harry Potter"}
]);
这将在lib集合中创建2个具有相应名称的模型,对吧?
在这种情况下,原始对象只是一个简单的对象(不是已经构建的模型)
在此示例中,集合的类型为Book
(这是一个可能具有某些预定义属性和默认值的模型)
var Library = Backbone.Collection.extend({
model: Book
});
所以图书馆是Book
模型的集合。
如果您想要创建一本新书作为图书馆的一部分,您可以通过两种方式进行操作。
1.)首先创建一个模型并将其添加到集合中
var book1 = new Book({
id: 1,
name: 'abc'
});
Library.add(book1);
2.)直接将Raw属性传递给Collection。
Library.add([{id: 1, name: 'abc'}]);