使用 KnockoutJs 遍历嵌套的 Django REST Framework API

Posted

技术标签:

【中文标题】使用 KnockoutJs 遍历嵌套的 Django REST Framework API【英文标题】:Iterate through nested Django REST Framework API with KnockoutJs 【发布时间】:2017-04-25 11:28:40 【问题描述】:

我正在构建一个应用程序,并使用 Django 和 Django REST Framework 作为后端,并使用 KnockoutJS 在前端处理我的列表。我以前使用过 Knockout,但它是一个简单的 JSON 列表,但我无法弄清楚如何从 API 中获取嵌套的 JSON 对象并显示在我的模板中。它会将对象结构打印到控制台,所以我知道我已连接,但同时会打印错误Uncaught TypeError: Cannot read property 'fromJson' of undefined(…);如果我可以正确地遍历对象,我相信它也可以修复 Uncaught 错误。谢谢。

<script>
  $(document).ready(function () 
    var url = "/api/plaques/";
    var viewModel = ;
    $.getJSON(url, function (data) 
      console.log(data);
      viewModel.model = ko.mapping.fromJson(data);
      ko.applyBindings(viewModel);
    );
 );
</script>


<table data-bind="foreach: items">
  <tr>
    <td data-bind="text: id"></td>
    ...
  </tr>
</table>

【问题讨论】:

【参考方案1】:

看起来您没有正确安装和包含ko.mappings 插件。它不是核心knockout.js 的一部分。

另外请注意,有问题的方法被命名为 ko.mapping.fromJSON 而不是ko.mapping.fromJson

https://github.com/SteveSanderson/knockout.mapping/tree/master/build/output

【讨论】:

以上是关于使用 KnockoutJs 遍历嵌套的 Django REST Framework API的主要内容,如果未能解决你的问题,请参考以下文章

KnockoutJS foreach 不会遍历集合

使用 knockoutjs 绑定来自 JSON 对象的数据 - Asp.net MVC

遍历模型字段 - Django

KnockoutJS 3.X API 第四章 数据绑定 控制流foreach绑定

在 Axios 中的 GET 方法 URL 搜索参数中发送嵌套对象

c#遍历嵌套层次很多的xml