gpt4 book ai didi

jquery - KnockoutJS 映射模型添加到 Observable 数组

转载 作者:行者123 更新时间:2023-12-01 04:57:03 25 4
gpt4 key购买 nike

我想从动态模型创建一个可观察数组,该模型基本上是一个用于获取 JSON 信息的 AJAX 帖子。然后我想将该数组添加到表中。

这是我创建 Viewmodel 的 Javascript,以及应该添加到数组中的内容:

var ProductViewmodel;
function bindProductModel(Products) {
var self = this;
self.items = ko.mapping.fromJS([]);
ProductViewmodel = ko.mapping.fromJS(Products, self.items);
console.log(ProductViewmodel);
ko.applyBindings(ProductViewmodel);
}

function JSONProducts() {
$.ajax({
url: "WebForm1.aspx/AvailibleProducts",
// Current Page, Method
data: '{Warehouse: 1}',
// parameter map as JSON
type: "POST",
// data has to be POSTed
contentType: "application/json; charset=utf-8",
// posting JSON content
dataType: "JSON",
// type of data is JSON (must be upper case!)
timeout: 10000,
// AJAX timeout
success: function (result) {
bindProductModel(result);
},
error: function (xhr, status) {
alert(status + " - " + xhr.responseText);
}
});
}

JSON 的获取工作完美:

{
"d": [
{
"__type": "Warehouse.Tracntrace.Members_Only.StockMovement.ProductStagingMethod",
"ProductSKUID": 2,
"ProductSKUName": "Decoder 1131",
"WarehouseID": 1,
"WarehouseName": "SoftwareDevelopmentTest",
"SystemAreaName": "Staging",
"Qty": 5
}
]

}

这是我尝试将其数据绑定(bind)到我的表的地方:

<div id="TableContainer" class="gridview">
<table border="1" cellpadding="0" cellspacing="0">
<tbody data-bind="foreach: ProductViewmodel">
<tr>
<td data-bind="text: ProductSKUID"></td>
<td data-bind="text: ProductSKUName"></td>
<td data-bind="text: WarehouseID"></td>
<td data-bind="text: WarehouseName"></td>
<td data-bind="text: SystemAreaName"></td>
<td data-bind="text: QTY"></td>

</tr>
</tbody>
</table>
</div>

它似乎不想将其添加到我的数组中。任何建议将不胜感激。

问候雅克

最佳答案

您的代码有 3 个问题:

  1. data-bind="foreach: ProductViewmodel"你尝试对整体进行 foreach ProductViewmodel但您需要在 items 上执行此操作。所以将其更改为 <tbody data-bind="foreach: items">
  2. 你的 json 对象包裹在 d 中属性,因此您需要在映射中处理它。所以你需要写:ProductViewmodel = ko.mapping.fromJS(Products.d, self.items);
  3. 您输错了Qty属性名称。正确的绑定(bind)是:<td data-bind="text: Qty"></td> (数据绑定(bind)表达式区分大小写)

我已经created a fiddle使用包含修复程序的代码。

关于jquery - KnockoutJS 映射模型添加到 Observable 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13717156/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com