2013-08-05 3 views
1

Я использую YUI3 для создания экземпляра Y.TreeView.Расширение YUI TreeView с Treeview Sortable

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

Теперь я хочу расширить этот объект, чтобы использовать его с TreeView.Sortable, который смешивает в Y.Tree.Sortable. Конструктор - TreeView.Sortable() (см. TreeView.Sortable Api).

Как это сделать, поэтому я могу использовать методы TreeView.Sortable для объекта treeview?

Вот полный контекст:

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? 

}); 

ответ

2

В случае, если кто заинтересован в решении, это то, как подклассы в YUI работает (спасибо Райан Гроув за помощь: 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(); 
}); 
Смежные вопросы