スタック:
- 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つの注文を取得し、その注文にバインドし、ユーザーにそのフィールドを更新させ、データソースを介して保存する方法が必要です。