Comment puis-je appeler une fonction YUI3 de base à partir d'une fonction JavaScript normale?
Question
Je voudrais appeler une simple fonction de YUI3 à partir d'une fonction JavaScript. Voici un code qui fait ce que je veux dans un très bavard façon:
function changeContent (message) {
YUI().use("node", function(Y) {
Y.all('#content-div').setContent(message);
});
}
Y at-il une meilleure façon de le faire?
NOTE: Je ne veux pas attacher cette fonction à tout événement, je veux juste une fonction changeContent globale () disponible
.La solution
Si vous voulez que l'API d'exister en dehors de la YUI () utilisation. (... fonction (Y) {/ * bac à sable * /}), vous pouvez saisir l'instance retournée de YUI ().
(function () { // to prevent extra global, we wrap in a function
var Y = YUI().use('node');
function changeContent(message) {
Y.one('#content-div').setContent(message);
}
...
})();
Sachez qu'il ya une condition de course ici si vous utilisez le fichier de démarrage (Yui-min.js) et dynamique chargeur pour tirer dans les autres modules. changeContent pourrait être appelé avant que l'API Node est chargé et ajouté à Y. Vous pouvez éviter cela en utilisant un script combo avant. Vous pouvez obtenir le script combo url de le YUI 3 Configurator . Il y a une pénalité de performance pour le chargement des modules d'une manière de blocage à l'avant. Vous pouvez ou ne pas remarquer dans votre application.
Autres conseils
Vous pouvez faire comme ceci:
(function(){
YUI().use("node", function(Y) {
APP = {
changeContent: function(message){
Y.all('.content-div').setContent(message);
}
};
});
})();
Ensuite, vous pouvez appeler changeContent en appelant APP.changeContent(message);
de partout où vous voulez. J'espère que cela t'aides. : D