1

我的页面中有 2 个淘汰视图模型。我想将我的第一个视图模型的值发送到一个 ajax 帖子,该帖子获取数据并根据我从第一个视图模型传递的值将其添加到我的第二个视图模型中。

我想要做的是将订单 ID 作为变量传递给我的第二个 Ajax 帖子,以便我可以获得特定订单号的订单详细信息。

我数据绑定这样的标签:

<a data-bind="attr: { href: Url, title: Detail }, text: OrderNumber"></a>

这是第一个 ViewModel 的一部分:

      var OrderDS = function (data) {
      var self = this;
      self.OrderNumber = ko.observable(data.OrderNumber);
      self.Url = ko.observable("#");
      self.Detail = ko.observable("Product Details For This Order");
     }

我想将 Observable OrderNumber 作为变量传递给我的辅助 Ajax Post:

 $.ajax({
            url: "AccountsReceivible.aspx/GetOrderDetails",
            data: '{}', //How Do I ADD the Selected Value Here???
            type: "POST",
            contentType: "application/json; charset=utf-8",
            dataType: "JSON",
            timeout: 10000,
            success: function (Result) {
                var MappedDetail =
              $.map(Result.d,
             function (item) {
                 return new OrderDetailDS(item);
             }
               );
                self.OrderDetail(MappedDetail);

            },
            error: function (xhr, status) {
                alert(status + " - " + xhr.responseText);
            }
        });
4

1 回答 1

1

您不必将 JSON 编写为字符串,只需提供一个真实的 JS 对象:

data : { orderNumber : self.OrderNumber() }

(假设这self是视图模型)

编辑:

对于视图模型之间的关联,您将不得不关心自己。在你的情况下:

var OrderDetailViewModel = function (OrderDetail) {
    var self = this;
    var orderViewModel = OrderViewmodel;

现在在我的第一个代码片段中self 替换为。orderViewModel

于 2013-01-23T11:04:47.260 回答