【问题标题】:Knockout, Kendo treeview, mvvm, HierarchicalDataSource: Unable to get value of the property 'toLowerCase'淘汰赛、剑道树视图、mvvm、HierarchicalDataSource:无法获取属性“toLowerCase”的值
【发布时间】:2013-03-04 16:42:56
【问题描述】:

我正在尝试使用视图模型填充我的树视图:

视图模型:

var vm = {
        dragAndDrop: ko.observable(true),
        dataSource: getDataAPI(),
        dataTextField: "FullName"
    }

    return vm;

function getDataAPI() {
        var serviceRoot = "http://demos.kendoui.com/service";
        var homogeneous = new kendo.data.HierarchicalDataSource({
            transport: {
                read: {
                    url: serviceRoot + "/Employees",
                    dataType: "jsonp"
                }
            },
            schema: {
                model: {
                    id: "EmployeeId",
                    hasChildren: "HasEmployees"
                }
            }
        });
        return homogeneous;
    }

查看:

 <div data-bind="kendoTreeView: { dragAndDrop: dragAndDrop, dataSource: dataSource }"></div>

错误:

无法获取属性“toLowerCase”的值

总结:如果我使用静态 json 数据,使用这种淘汰方法,我可以填充一棵树

【问题讨论】:

  • 这个 toLowerCase 是从哪里来的?我在您的代码中的任何地方都没有看到它。当错误发生时,错误是从哪一行代码和哪个文件中抛出的?
  • kendo.all.min.js 第 10 行

标签: knockout.js treeview kendo-ui knockout-mvvm


【解决方案1】:

问题很可能是 Kendo 认为您的数据是数字或其他类型的字符串。

您可能需要在 HTML 中添加一个 data-field 属性。请参阅this thread 了解更多信息。

【讨论】:

  • 是的,我也看到了那个线程,但是由于数据集返回 null 而发生错误。似乎 kendo.data.HierarchicalDataSource 没有从网络服务中得到任何东西
  • 好的,如果您的 HierarchicalDataSource 返回 null,您应该在问题中包含该信息,因为它表明该问题与 UI 或 JavaScript 无关,而与您的数据服务有关。
  • 我刚刚注意到数据服务调用正在发送到 kendoui.c​​om 站点。如果您在本地或从不同于 kendoui.c​​om 的域运行此程序,您可能会遇到跨站点脚本错误。
  • 本地数据也有同样的问题
猜你喜欢
  • 2017-02-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-27
  • 1970-01-01
  • 1970-01-01
  • 2017-09-10
  • 2014-08-27
相关资源
最近更新 更多