Angularjs 单击选定剑道树项目时,“无法将未定义或null转换为对象”

Angularjs 单击选定剑道树项目时,“无法将未定义或null转换为对象”,angularjs,kendo-ui,Angularjs,Kendo Ui,我在剑道树视图中使用了剑道角度指令。我使用以下方法和视图形成了数据源,如下所示。如果使用Jquery样式而不是Angular指令,我不会得到任何错误 var dataSource = new kendo.data.HierarchicalDataSource() $scope.templateData = dataSource ; <div kendo-tree-view="tree" k-data-source="templateData" k-on-change="onTemplat

我在剑道树视图中使用了剑道角度指令。我使用以下方法和视图形成了数据源,如下所示。如果使用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
                });
当我们单击树上的任何项目时,树将很好地加载,并在更改时触发事件。但是,当我们再次单击所选项目时,不会触发更改事件,它会触发读取的错误

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)

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

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

在代码中搜索“null”或null。如果您没有发现这样的错误,请查看是否也拼写错误。

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

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

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

我发现了错误。单击树上的某个项目后,我会从该项目中删除类k-state-selected。下次我单击同一项时,它似乎使用相同的classk状态selected和数据uid来查找所选项。因此,由于该项上不存在,它通常会给出上述错误


我发现了错误。单击树上的某个项目后,我会从该项目中删除类k-state-selected。下次我单击同一项时,它似乎使用相同的classk状态selected和数据uid来查找所选项。因此,由于该项上不存在,它通常会给出上述错误


你能告诉我们onTemplateSelection函数的内容吗?$scope.onTemplateSelection=函数dataItem{onSelectdataItem,false;};onSelect的内容呢?它有巨大的逻辑,但是$scope.onTemplateSelection本身并没有被触发。您能给我们onTemplateSelection函数的内容吗?$scope.onTemplateSelection=函数dataItem{onSelectdataItem,false;};onSelect?的内容有巨大的逻辑,但是$scope.onTemplateSelection本身不会被触发。