在backbonejs中检查集合是否为空

4
我正在使用requirejs和backbonejs开发一个单页应用程序,涉及从数据库表中获取记录并将其显示。我是在点击按钮时完成这个任务的。我猜我不必在每次点击按钮时反复从服务器获取模型。
我的目标是,在第一次获取集合模型后,再次点击按钮时它不会再次获取。我对集合所做的任何修改/添加都会进行服务器验证,因此我应该能够在该按钮点击时保持最新的列表而无需重新从服务器获取所有模型。
因此,在获取模型之前,我需要检查集合是否为空,类似于以下内容:
if(window.invoices.isEmpty())
            {
                window.invoices.fetch({success:function(model){
                model.each(self.addOne,self);
                }});
            }
            else
            {
                window.invoices.each(self.addOne,self);
            }   

请帮我指出如果我在这里犯了基本错误的话。
1个回答

6
你可以使用 length 方法。

window.invoices.length == 0


但是我有点不确定你在使用 model.each(self.addOne, self) 做什么。当你从集合中获取数据时,Backbone会根据返回的JSON数据创建模型并为您填充集合。

这段代码在表格中添加行。isEmpty()函数能用于此目的吗? - beNerd
isEmpty也可以被使用,但它是一个下划线方法,而length是一个集合方法。在backbone底层可能使用了isEmpty(),但我认为 window.invoices.length == 0_.isEmpty(window.invoice.length) 更好。 - neebz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接