Проблема в том, что YUI () создает новую песочницу с каждым выполнением.Если вы хотите использовать его повторно, вам нужно захватить его значение после первого выполнения «use» и использовать это значение позже.Возможно, есть лучший способ сделать это с помощью YUish, но я использую глобальный YUI_MAIN:
var YUI_MAIN = YUI().use("util","node","event",function (Y) {
Y.namespace('com.myCompany');
var MV = Y.com.myCompany;
var setVal = function(e){
MV.val = 10;
};
Y.on("click", setVal,"#one");
});
YUI_MAIN.use(function (Y) {
Y.namespace('com.myCompany');
var MV = Y.com.myCompany;
var getVal = function(e){
alert(MV.val);
};
Y.on("click", getVal,"#two");
});
Если вы действительно хотите делиться между отдельными песочницами и избегать дополнительных глобальных, вы можете использовать замыкание для создания закрытой переменнойс чем-то вроде этого:
YUI.add('util', (function () {
var privateUtilNS = {};
return function(Y) {
privateUtilNS['val'] = undefined;
Y.setVal = function(e){
privateUtilNS.val = 10;
};
Y.getVal = function(e){
alert(privateUtilNS.val);
};
};
}()), '3.3.0', {
requires : []
});
YUI().use("util","node","event",function (Y) {
Y.on("click", Y.setVal,"#one");
});
YUI().use("util","node","event",function (Y) {
Y.on("click", Y.getVal,"#two");
});