2017-09-12 5 views
2

Je veux construire un arbre hybride qui montre une vue globale de tout mon système. Le système est un système de gestion de contenu mais il a aussi d'autres fonctions qui peuvent être gérées à partir de la «collection de contextes OData» qui composent mon API globale. Donc, j'essaie de comprendre comment je peux faire une sorte de source de données hiérarchique qui fonctionnerait avec des URL variables basées sur le type de nœud et un saupoudrage de métadonnées de modèle dynamique.Construction de l'arborescence de l'UI Kendo personnalisée

par exemple ...

J'ai fonctions API dans mon cadre qui me permet de faire ...

my.api.get("Context/Type", function(odataCollectionResult) { 
    ... 
}); 

Je sais aussi soutient Kendo UI faire quelque chose ...

var viewModel = new kendo.data.HierarchicalDataSource({ 
    type:'odata-v4', 
    ... 
}); 

$("#tree").kendoTreeview({ dataSource: viewModel ... }); 

... mais ma question est ...

Comment puis-je configurer un treeview kendo pour que je lie à la source de données personnalisée qui appelle mes fonctions d'expansion et de réduction personnalisées afin que je puisse prendre des décisions basées sur des choses plus complexes que je sais sur ce que mes nœuds représentent?

Je dois le faire car, selon le type de nœud, les enfants proviendront de différents points de terminaison, donc je ne peux pas utiliser une source de données OData.

Je suis en train de faire quelque chose comme ça, mais je ne peux pas sembler le faire fonctionner ...

var viewModel = { 
    data: [], 
    expand: function(node) { 
      var myParams = { endpoint: "Context/Type", childNodeType: "Foo/Bar" }; 
      my.api.get(myParams.endpoint, function(data) { 
       node.data.children = buildNodes(myParams.childNodetype, data); 
      }); 
    }, 
    collapse: function(node) { 
     ... 
    } 
    } 
} 

$("#myTree").kendoTreeview({ 
    dataSource: viewModel, 
    events: { onExpand: viewModel.expand, onCollapse: viewModel.collapse } 
}); 

Quelqu'un at-il fait cela ou a quelques suggestions sur la façon dont je pourrais obtenir ce travail?

Répondre