2012-01-15 167 views
0

當我在我的集​​合上調用fetch時,應用程序調用服務器,服務器返回一個對象數組。在fetch調用的成功函數中,我有一個空集合和原始響應,其中包含由服務器響應的所有對象。骨幹提取不能正常工作

收集

var OpenOrders = BaseCollection.extend({ 
    model: Order, 
    url: baseUrl + '/api/orders?status=1' 
}); 

型號

var Order = BaseModel.extend(

    { 
     url:baseUrl + "/api/order", 
     defaults:{ 
      order_items: new OrderList(), 
      location: 1, 
      remark: "remark" 
     }, 

     initialize: function(options) { 

      var orderItems = this.get('order_items'); 
      if (orderItems instanceof Array) { 
       orderItems = new OrderList(orderItems); 
       this.set({'order_items': orderItems}) 
      } 
      orderItems.bind('change', _.bind(function() { 
       this.trigger('change') 
      }, this)) 
       .bind('remove', _.bind(function() { 
       this.trigger('change') 
      }, this)); 
      return this; 
     }, 

    sum: function() { 
     return this.get('order_items').sum(); 
    }, 

    validate: function() { 
     return !!this.get('order_items').length; 
    }, 

    add:function(product) { 
     this.get('order_items').add(product); 

    }, 
    remove: function(product) { 
     this.get('order_items').remove(product); 

    } 
); 

抓取集合

this.collection.fetch({success:_.bind(function(collection, response){ 
      console.log('OpenOrdersListView', collection.toJSON()) 
      // logs [] 
      console.log('OpenOrdersListView', response) 
      // logs [Object, Object ...] 

     }, this)}) 

回答

2

達姆,其模型中的validate方法。我雖然驗證必須返回一個布爾值,但在閱讀docs後,它只有在模型無效時才返回錯誤消息。

validate: function() { 
     if (!this.get('order_items').length){ 
      return 'set minium of one product before save the order' 
     } 
    },