我在C#Web Api控制器中有数据,结构如下:
Dictionary<string, List<Project>> projects ....
字典中的键只是月份名称 - 项目按月分组。
我的淘汰ViewModel:
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>
但它不起作用 - 只产生&#34;关键&#34;行。我怎样才能实现我的目标? 也许我这样做基本上是错误的,我应该在我的View中将数据分组而不是做这个服务器端?