【问题标题】:Kendo treeList datasource - not getting bound with remote dataKendo treeList 数据源 - 未绑定远程数据
【发布时间】:2015-09-25 08:20:54
【问题描述】:

我已经为 treeList 编写了一个指令,并将数据从远程服务调用绑定到它。下面是指令链接方法中TreeListDataSource的代码:

scope.treeListOptions.dataSource = new kendo.data.TreeListDataSource({
  transport: {
    read: function(options) {
      scope.getData().then(function(dataToBeDisplayed) {
        options.success(dataToBeDisplayed);
      }, function(error) {
        $log.error(error);
      });
    },
    error: function(e) {
      alert(e.status + e.errorThrown);
    },
  },
});

scope.treeListOptions.dataSource.read(); 

以下是 TreeList 指令定义:

var TreeListDirectiveDefinition = {
  restrict: 'E',
  replace: true,
  template: '<div><kendo-treelist k-options="treeListOptions"></kendo-treelist></div>',
  scope: {
    columns: '=',
    getMethod: '&'
  },
  link: linkTreeList
};

当我看到绑定到 scope.treeListOptions.dataSource.data() 的数据时,添加了许多新属性,如下所示:

// parent element
C.define.init
PartExamined: "test"
StudyUid: "1.3.6.1.4.1.30071.8.56809868014.4964677242993979.234.56616"
_events: Object
_loaded: true
dirty: false
hasChildren: true
id: 1
parent: ()
parentId: null
parentIdField: "parentId"
uid: "1ca6302c-b1ad-493f-b002-d2032a548a80"
__proto__: i.extend.i


//child element
C.define.init
PartExamined: "test2"
SeriesInstanceUid: "1.3.6.1.4.1.30071.8.56809868014.4964677242993979.234.56617"
_events: Object
_loaded: true
dirty: false
hasChildren: false
id: 2
parent: ()
parentId: 1
parentIdField: "parentId"
uid: "953bc7a7-e5e8-4f26-a120-b13402c6cce4"
__proto__: i.extend.i

parent: ()、parentIdField: "parentId"、_loaded: true、dirty: false、hasChildren: true 等属性由 TreeListDataSource 添加。

这是正确的数据格式吗?因为 TreeList 正在显示 “没有要显示的记录”

谁能帮我解决这个问题?

更新 这是为 treeList 创建的 angular 指令的链接:http://jsfiddle.net/yuqorcvL/15/

该指令仍然无效。任何帮助将不胜感激。

谢谢。

【问题讨论】:

    标签: angularjs kendo-ui kendo-grid kendo-treeview


    【解决方案1】:

    您应该在scope.treeListOptions.dataSource 中添加schema

    schema: {
                            model: {
                                id: "EmployeeID",
                                parentId: "ReportsTo",
                                fields: {
                                    ReportsTo: { field: "ReportsTo",  nullable: true },
                                    EmployeeID: { field: "EmployeeId", type: "number" },
                                    Extension: { field: "Extension", type: "number" }
                                },
                                expanded: true
                            }
                        }
    

    在剑道文档中查看 that example

    【讨论】:

    • 我在此链接中创建的示例没有架构:link。还有其他解决方案吗?
    • data var treeList = $("#treeList").data("kendoTreeList"); var data = treeList.dataSource.data(); 里面有什么?
    • 您帖子中的数据格式正确。其他字段由 kendo TreeListDataSource wrapper 创建。
    • @Layonez Wronskey:问题中的第二个代码 sn-p 是从 treeList.dataSource.data() 返回的内容。有什么解决办法吗?
    • 你的 jsfiddle 不工作。你有错误的标签 ng:app 应该是 ng-app, ng:controller - ng-controller, `myApp.directive('treeGrid'` - myApp.directive('tree-grid'
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多