我在 C# Web Api 控制器中有以下结构的数据:
Dictionary<string, List<Project>> projects ....
字典中的键只是月份名称 - 项目按月份分组。
我的淘汰视图模型:
function ProjectsViewModel(data) {
var self = this;
self.projects = ko.observableArray([]);
for (field in data) {
if (data.hasOwnProperty(field)) {
self.projects.push(new DictionaryItem(field, data[field]));
}
}
}
function DictionaryItem(key, value) {
this.key = ko.observable(key);
this.value = ko.observableArray(value);
}
var viewModel;
$(function() {
var baseUri = '@ViewBag.ApiUrl';
$.getJSON(baseUri, function(data) {
viewModel = new ProjectsViewModel(data);
ko.applyBindings(viewModel);
});
});
我想使用具有以下格式的一个表格来呈现这些数据并剔除:
[key]
[project row]
[project row]
[key]
[project row]
[project row]
...
我正在尝试使用 Knockout 使用以下标记来做到这一点:
<table>
<tbody data-bind="foreach: projects">
<tr>
<td data-bind="text: key"></td>
</tr>
<!-- ko:foreach: value -->
<tr>
<td data-bind="text: Name"></td>
</tr>
<!-- /ko -->
</tbody>
</table>
但它不起作用——它只会产生“关键”行。我怎样才能达到我想要的?也许我这样做基本上是错误的,我应该在我的视图中对数据进行分组而不是在服务器端进行?