2013-08-05 37 views
1

我使用YUI3創建Y.TreeView的一個實例。使用樹視圖擴展YUI 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? 

}); 

回答

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(); 
});