【问题标题】:"Cannot convert undefined or null to object" when click selected kendo tree item单击选定的剑道树项目时“无法将未定义或空值转换为对象”
【发布时间】:2017-06-13 11:45:19
【问题描述】:

我在剑道树视图中使用了 Kendo-angular 指令。我使用以下方法形成数据源并查看如下。如果使用 Jquery 样式而不是 Angular 指令,我不会收到任何错误。

var dataSource = new kendo.data.HierarchicalDataSource()
$scope.templateData = dataSource ;

<div kendo-tree-view="tree" k-data-source="templateData" k-on-change="onTemplateSelection(dataItem)"></div>

$("#treeview").kendoTreeView({
                    spriteCssClass: "sprite",
                    dataSource: dataSource,
                    dataTextField:  [ "AppName", "Name" ],
                    select: onSelect
                });

当我们单击树上的任何项目时,树加载正常并且 on-change 事件触发。但是,当我们再次单击所选项目时,不会触发更改事件,而是触发读取的错误。

Uncaught TypeError: Cannot convert undefined or null to object
    at Function.keys (<anonymous>)
    at Object.ve.proxyModelSetters (kendo.all.min.js:26)
    at init.<anonymous> (kendo.all.min.js:86)
    at init.trigger (kendo.all.min.js:25)
    at init.select (kendo.all.min.js:59)
    at init._click (kendo.all.min.js:58)

【问题讨论】:

  • 可以给我们onTemplateSelection函数的内容吗?
  • $scope.onTemplateSelection = function (dataItem) { onSelect(dataItem, false); };
  • 还有onSelect的内容?
  • 它有很大的逻辑,但是 $scope.onTemplateSelection 本身并没有被触发。

标签: angularjs kendo-ui


【解决方案1】:

如果没有所有代码,很难找到错误,但基本上你得到的异常非常简单。在您的代码中的某处,您可能有一个如下所示的块:

if (object !== "null") { // The null is a string and not actually null
    ...
    Object.keys(object) ...
    ...
}

在您的代码中搜索“null”或“null”。如果你没有找到这样的,看看你是否也拼错了。

【讨论】:

    【解决方案2】:

    我发现了错误。一旦我点击了树上的一个项目,我就会从项目中删除类,k-“state-selected”。下次当我单击同一项目时,它似乎使用相同的类(“k-state-selected”)和 data-uid 来查找所选项目。因此,由于它不存在于该项目上,因此它曾经给出上述错误。

    【讨论】:

      猜你喜欢
      • 2020-08-04
      • 1970-01-01
      • 2021-01-20
      • 2020-03-21
      • 1970-01-01
      • 2022-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多