1

スタック:

  • ASPMVC4ベータ
  • Web API
  • Knockout.js
  • Upshot.js

マスターディテールシナリオがあります。マスター部分では注文を編集しており、詳細部分では注文商品があります。私が持っているすべての製品をリストすることができ、それはうまく機能しますが、マスターと詳細を表示する必要があります。

これは私のWebAPIメソッドです。

 public Order GetSingleOrder(long orderId)
 {
     return DbContext.Orders
                         .Include("OrderedProducts")
                         .Include("OrderedProducts.Product")
                         .Include("OrderedProducts.Product.Family")
                         .Single(o => o.OrderId == orderId);
 }

これはうまく機能し、製品とその情報を含む1つの注文のみを返します。

しかし、viewModelでは、これを単一の注文として取得することはできません。アップショットデータソースは、呼び出されたメソッドのみを提供し、そのgetEntities()アイテムにアクセスできません。

var CreateOrEditViewModel = function () {
    var self = this;
    self.dsOrder = upshot.dataSources.SingleOrder.refresh();

    self.orders = self.dsOrder.getEntities();
    self.order = self.orders()[0];

};

遅延ロードされているように見え、その時点getEntities()ではアイテムがなくself.orders()、空のコレクションが返されます。

更新: 1つの注文を取得し、その注文にバインドし、ユーザーにそのフィールドを更新させ、データソースを介して保存する方法が必要です。

4

1 に答える 1

3

遅延ロードされませんが、非同期です。upshot.dataSources.SingleOrder.refresh()を呼び出すと、2つのコールバック関数を渡すことができます。1つは成功用、もう1つはエラー用です。コールバックでは、ロードされたデータがあります。

于 2012-03-12T20:11:22.717 に答える