使用Treeview Sortable扩展YUI TreeView

时间:2013-08-05 13:40:16

标签: javascript treeview yui

我正在使用YUI3创建Y.TreeView的实例。

var treeview = new Y.TreeView({
        lazyRender: false,
        container: treeview,
        nodes: jsonTreeFile
});

现在我想扩展这个对象,将它与TreeView.Sortable一起使用,它混合在Y.Tree.Sortable中。构造函数是TreeView.Sortable()(参见TreeView.Sortable Api)。

我该怎么做,所以我可以在treeview对象上使用TreeView.Sortable方法?

以下是完整的背景信息:

YUI({
    gallery: 'gallery-2013.07.31-22-47'}).use(
    'gallery-sm-treeview', 'gallery-sm-treeview-sortable', function (Y) {

      // Create a new TreeView in container with nodes.
      treeview = new Y.TreeView({
        lazyRender: false,
        container: treeview,
        nodes: jsonTreeFile
      });

      // Render the treeview inside the #treeId element.
      treeview.render();

      // Now, how do I extend and sort the treeview object?

}); 

1 个答案:

答案 0 :(得分:2)

如果有人对解决方案感兴趣,这就是YUI中的子类化工作方式(感谢Ryan Grove提供帮助:codepen.io/rgrove/pen/vAuep

YUI({
    gallery: 'gallery-2013.07.31-22-47'
}).use('gallery-sm-treeview', 'gallery-sm-treeview-sortable', function (Y) {

  var SortedTreeView = Y.Base.create('sortedTreeView', Y.TreeView, [Y.TreeView.Sortable], {
    sortComparator: function (node) {
      return node.label;
    }
  });

  var treeview = new SortedTreeView({
    container: '#treeview',
    nodes: [{label: 'hi!'}, {label: 'hello!'}]
  });

  treeview.render();
});