У вас есть доступ только к diagrambuilder
внутри функции обратного вызова, которую вы передаете YUI.use
.
<script>
var staY = YUI().use(
'aui-diagram-builder',
function (Y) {
var diagrambuilder = new Y.DiagramBuilder({
availableFields: availableFields,
boundingBox: '#diagrambuilderBB',
srcNode: '#diagrambuilderBB',
fields: []
});
console.log(diagrambuilder);
// use diagrambuilder here
});
);
</script>
Если вы не хотите помещать весь свой код в функцию YUI.use
, вы можете создать свою собственную функцию, которая принимает diagrambuilder
.
<script>
var buildDiagram = function(diagrambuilder) {
console.log(diagrambuilder);
// use diagrambuilder here
}
var staY = YUI().use(
'aui-diagram-builder',
function (Y) {
var diagrambuilder = new Y.DiagramBuilder({
availableFields: availableFields,
boundingBox: '#diagrambuilderBB',
srcNode: '#diagrambuilderBB',
fields: []
});
buildDiagram(diagrambuilder);
});
);
</script>
Другой вариант, который у вас есть, - создать функцию, которая принимает Y
:
<script>
var buildDiagram = function(Y) {
var diagrambuilder = new Y.DiagramBuilder({
availableFields: availableFields,
boundingBox: '#diagrambuilderBB',
srcNode: '#diagrambuilderBB',
fields: []
});
console.log(diagrambuilder);
// use diagrambuilder here
}
var staY = YUI().use('aui-diagram-builder', buildDiagram);
</script>
Все они делают одно и то же, но место написания кода варьируется. В любом случае, дело в том, что у вас есть доступ только к Y.DiagramBuilder
внутри функции обратного вызова YUI().use()
.
Вы не можете сделать что-то вроде этого:
<script>
var staY = YUI().use(
'aui-diagram-builder',
function (Y) {
var diagrambuilder = new Y.DiagramBuilder({
availableFields: availableFields,
boundingBox: '#diagrambuilderBB',
srcNode: '#diagrambuilderBB',
fields: []
});
});
);
console.log(diagrambuilder); // undefined
</script>
А вы не можете сделать это:
<script>
var diagrambuilder;
var staY = YUI().use(
'aui-diagram-builder',
function (Y) {
diagrambuilder = new Y.DiagramBuilder({
availableFields: availableFields,
boundingBox: '#diagrambuilderBB',
srcNode: '#diagrambuilderBB',
fields: []
});
});
);
// This will most likely be null, as it takes time to load
// the aui-diagram-builder library, and the code is asynchronous.
// If this does happen to work for you, know that you're getting lucky
// and it will fail at some point. This is not something you should do,
// but I think it's what you're hoping for, so I'm pointing it out.
console.log(diagrambuilder);
</script>