【发布时间】:2012-03-29 05:42:27
【问题描述】:
堆栈:
- ASP MVC4 测试版
- 网络 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() 返回一个空集合。
更新: 我需要一种方法来获取一个订单,绑定到该订单,让用户更新它的字段,并通过数据源保存它。
【问题讨论】:
标签: knockout.js asp.net-mvc-4 asp.net-web-api upshot