私は YUI 3 と YUI 全般に不慣れです。クラスとメソッド間でデータをやり取りしようとしています。
この例では、gallery-sm-treeviewプラグインを使用してファイル ツリーを構築しています。ツリーを初期化してレンダリングするTreeViewという名前のクラスがあります。TreeViewの getterメソッドを介していくつかのプラグイン固有のメソッドにアクセスしたいMenuBarという名前の別のクラスがあります。
ただし、YUI().use() スコープ内の変数var treeviewは、もちろん外部からアクセスできません。どうやってするの?
YUI.add('treetool.TreeView', function(Y) {
Y.treetool.TreeView = Class.extend({
init : function(elementId) {
YUI({
gallery: 'gallery-2013.06.20-02-07'}).use('gallery-sm-treeview', function (Y) {
// Create a new TreeView with a few nodes.
var treeview = new Y.TreeView({
// Tell the TreeView where to render itself.
container: elementId,
// Populate the treeview with some tree nodes.
nodes: [
{label: 'Node 1'},
{label: 'Node 2', children: [
{label: 'Child 1'},
]
});
// Render the treeview inside the #treeview element.
treeview.render();
});
},
getSomeData : function () {
return treeview.getSelectedNodes();
}
});
}, '0.0.1', {
requires : [ 'jquery' ]
});
と
YUI.add('treetool.MenuBar', function(Y) {
Y.treetool.MenuBar = Class.extend({
init : function(treeObj) {
var someData = treeObj.getSomeData();
},
});
}, '0.0.1', {
requires : [ 'jquery' ]
});