1

我在 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>

但它不起作用——它只会产生“关键”行。我怎样才能达到我想要的?也许我这样做基本上是错误的,我应该在我的视图中对数据进行分组而不是在服务器端进行?

4

1 回答 1

1

修复第二个 foreach 的语法。

<!-- "ko foreach: value -->

工作示例:http: //jsfiddle.net/DRhrQ/

于 2013-09-29T16:47:21.540 回答