2012-01-15 25 views
0

私のコレクション上でfetchと呼ぶと、アプリケーションはサーバーを呼び出していて、サーバーはオブジェクトの配列を返します。フェッチ呼び出しの成功関数には、空のコレクションと、サーバーによって応答されたすべてのオブジェクトを保持する元の応答があります。バックボーンフェッチが正常に動作しない

コレクション

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

モデルコレクション

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

     }, this)}) 

答えて

2

ダムのフェッチ

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); 

    } 
); 

、それは私のモデルのvalidateメソッドです。検証はブール値を返す必要がありますが、docsを読んだあと、モデルが有効でない場合にのみエラーメッセージが返されます。

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