gpt4 book ai didi

javascript - 使用 knockoutjs 绑定(bind)和显示字典

转载 作者:行者123 更新时间:2023-11-30 05:56:27 25 4
gpt4 key购买 nike

我使用 knockout,我的 View 模型中有一个 observablearray (mappedCompaignByInterest),它包含对象数组,每个对象就像字典,它包含字符串键和对象数组 (Compaign) 值。请问如何将此对象与 knockoutjs 上的表绑定(bind)。

这是我的 View 模型:

    function DashboardViewModel() {
var self = this;
self.BuzzCompaignByInterest = ko.observableArray([]);

这是为了从服务器加载数据

  //    Load initial state from server,
$.getJSON("/Dashboard", function (Data) {
var mappedCompaignByInterest = Data.BuzzCompaignByInterest;
self.BuzzCompaignByInterest(mappedCompaignByInterest);
});

请注意,Data.BuzzCompaignByInterest 希望我从服务器获取它是一个字典,键是一个字符串,值是一个对象数组(Compaign)这是 Compaign 类的属性:

 public class BuzzCompaignModel
{
public long BuzzCompaignId { get; set; }
public string Name { get; set; }
public string Description { get; set; }
}

请问我如何显示来自 BuzzComapignByInterest 的数据(viewmodel 中的 observablearray)

最佳答案

我假设你的字典条目看起来像这个类:

function DictionaryItem(key, value) {
this.key = key;
this.value = value;
}

其中 value 是您的 BuzzCompaignModel,如下所示:

function BuzzCompaignModel(id, name, description) {
this.id = id;
this.name = name;
this.description = description;
}

在使用初始化的 BuzzCompaignModel 分配 DictionaryItem 集合后,您可以使用以下方式绑定(bind)此数组:

    <table>
<tbody data-bind="foreach:BuzzCompaignByInterest">

<tr>
<td data-bind='text:key'></td>
<td data-bind='text:value.id'></td>
<td data-bind='text:value.name'></td>
<td data-bind='text:value.description'></td>
</tr>
</tbody>
</table>

还有 jsfiddle举例

关于javascript - 使用 knockoutjs 绑定(bind)和显示字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11564610/

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