1
堆棧:如何獲得單一的實體結果
- ASP MVC4貝塔
- 的Web API
- Knockout.js
- Upshot.js
我有一個主 - 場景。在主部分,我正在編輯一個訂單,在細節部分我有訂單產品。我可以列出我擁有的所有產品,並且效果很好,但我現在需要顯示主要和細節。
這是我的Web API方法:
public Order GetSingleOrder(long orderId)
{
return DbContext.Orders
.Include("OrderedProducts")
.Include("OrderedProducts.Product")
.Include("OrderedProducts.Product.Family")
.Single(o => o.OrderId == orderId);
}
這工作不錯,它返回只有一個產品訂單,它的信息。
但是在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()
回報空collecton。
更新: 我需要一種方式來獲得一個訂單,都綁定到命令,讓用戶更新它的領域,並保存它通過數據源。
感謝您的異步提示,我能夠在綁定'if:orders()。length> 0'上放置一個條件,並且停止了錯誤 – 2012-03-13 02:31:11