2013-02-25 64 views
4

我开发与requirejs和backbonejs这涉及到从数据库表中读取记录,并将它们显示一个网页应用空。我正在点击一个按钮。我想我是不必要地通过点击一个按钮从服务器获取模型。检查如果集合是backbonejs

我要的是,一旦我取集合模型上它不应该在按钮的第二点击再次读取。我对收集进行的任何修改/添加都与服务器验证有关,因此我将能够保留最新的列表,而无需再次从该服务器上单击该按钮时获取所有模型。

,所以我需要检查,如果集合为空或不取的模型前。这样的事情:

if(window.invoices.isEmpty()) 
      { 
       window.invoices.fetch({success:function(model){ 
       model.each(self.addOne,self); 
       }}); 
      } 
      else 
      { 
       window.invoices.each(self.addOne,self); 
      } 

如果我在这里出现根本错误,请摆脱一些光。

回答

6

可以使用length方法。

window.invoices.length == 0


不过我有点不确定你正在尝试与model.each(self.addOne, self)做。当您获取集合时,Backbone将从返回的JSON创建模型并为您填充集合。

+0

此代码添加表中的行。可以用isEmpty()函数来达到目的吗? – beNerd 2013-02-25 08:37:25

+0

isEmpty也可以使用,但这是一个下划线方法,而长度是一种收集方法。它可能在下面的骨干使用isEmpty(),但我认为'window.invoices.length == 0'远远好于'_.isEmpty(window.invoice.length)' – neebz 2013-02-25 10:11:12