2012-05-01 45 views
20

你可以通过ID删除模型吗?该文件说你需要通过模型本身来移除它。通过id删除骨干模型?

因此,我需要先取出模型,然后将其删除?我不能通过ID删除它?

回答

26

您的意思是从集合中删除模型?看看这些文档,看起来好像你需要传递一个真实的模型,但是源代码表明你可以通过id模型或者cid模型,并且上述所有方法都可以工作(以及作为所有上述的数组)。

所以以下所有的应该是等价的:

collection.remove(myModel); 
collection.remove(myModel.id); 
collection.remove(myModel.cid); 
collection.remove([myModel]); 

我没有测试过这一点,但是。

+0

啊,好,凉爽感谢您的信息 – fancy

+3

是的,看着骨干V1.0.0源,则remove()函数首先使用get()函数,它接受一个获取模型从集合型号,id或cid。 – jackocnr

+1

我越用它,我发现Backbone的记录越差。 –

1

刚刚偶然发现了这篇文章(不要问我怎么做),model的ID默认为c1c23。如果你想通过ID从集合删除一个模型,然后你只需使用get从集合模型:

myCollection.get('c1');

这将返回模型ID c1,如果你想立即删除它,你只需将返回的模型传递给集合remove()函数。

myCollection.remove(myCollection.get('c1'));

+1

请注意,这里讨论的“默认”是“cid”,而不是“id”。模型默认没有ID。 – nrabinowitz