Kendo 树视图和树下拉列表 - 当前选择和更改的同步

Kendo tree view and tree dropdown - current selection and synchronization of changes

这段代码 http://dojo.telerik.com/UGaFucez

有两个控件 - 树视图和树下拉列表。这 2 个控件共享一个数据源,因此它们显示相同的树。但令人费解的是,它们似乎也共享当前选择的值,当您在一个字段中更改选择时,它也会在另一个字段中更改。 如何?数据源不应共享当前选定的值(没有当前选定值的概念)。并且没有设置 MVVM 绑定。但不知何故,这些领域保持同步 - 任何人都可以解释为什么以及背后的原因吗?我怎样才能断开这种依赖?

其实经历过的行为除外。 DataSource 对象保存记录的状态。换句话说,我们在 kendo 数据源对象中保留展开、选中、选中...等状态。这可以用作大多数场景中的增强。例如,您应该只触发一个 delete/create/update 请求并将数据应用于所有关联的小部件。但是,确实对于某些场景来说是不适合的。对于您的情况,您可以拥有 DataSource 的不同实例,并使用它们填充小部件:

  var data= [
        {
          text: "Furniture", items: [
            { text: "Tables & Chairs" },
            { text: "Sofas" },
            { text: "Occasional Furniture" }
          ]
        },
        {
          text: "Decor", items: [
            { text: "Bed Linen" },
            { text: "Curtains & Blinds" },
            { text: "Carpets" }
          ]
        }
      ]      

  var ds1 = new kendo.data.HierarchicalDataSource({
      data: data
    });      
  var ds2 = new kendo.data.HierarchicalDataSource({
      data: data
    });  


  var treeview = $("#treeview").kendoTreeView({
    dataSource:ds1 
  }).data("kendoTreeView");

  $('#treeField').kendoDropDownTree({
    dataSource: ds2
  });

这是一个关于此事的道场示例:http://dojo.telerik.com/@nenchef/ucapaTeT