J'ai développé l'extension pour sharepoint. J'essayais de mettre en œuvre la légende personnalisée pour la bibliothèque de documents (en utilisant fancytree pour la présentation du contenu de la bibliothèque). Pour référence j'ai utilisé https://dev.office.com/sharepoint/docs/sp-add-ins/highlight-content-and-enhance-the-functionality-of-sharepoint-hosted-sharepoint.La légende Sharepoint 2013 n'est pas définie
J'ai défini la fonctionnalité de légende dans une fonction séparée execCallout (data). (pour des raisons de simplicité, les données sont omises).
J'ai deux scenarious: execCallout est lancé/appelé par l'utilisateur (pas de données préchargées) et execCallout est chargé avec les données de départ. Dans les deux cas, j'utilise le même execCallout.
function execCallout (data) {
console.log("demo");
//get our launchpoint - where callout will appear
var targetElement = document.querySelectorAll(".fancytree-active.fancytree-focused .fancytree-title")[0];
//Configure new Callout
var calloutOptions = new CalloutOptions();
calloutOptions.ID = 'MyCustomCallOut';
calloutOptions.launchPoint = targetElement;
calloutOptions.beakOrientation = 'leftRight';
calloutOptions.content = ' My Content';
calloutOptions.title = 'My Title';
// check for current callout
var myCallOut = CalloutManager.createNewIfNecessary(calloutOptions);
//Create custom action for callout
var myAction = new CalloutActionOptions();
myAction.text = 'My Special Action';
myAction.onClickCallback = function(event, action)
{
alert("I can do whatever you want");
};
var newAction = new CalloutAction(myAction);
//Add the action to the callout
myCallOut.addAction(newAction);
myCallOut.set({ openOptions: { event: "hover" } }); //or click
myCallOut.open();
}
Le premier scénario fonctionne très bien, à savoir, le clic utilisateur est lancé callout/execCallout est appelé. Cependant, lorsque des données préchargées sont obtenues, "Uncaught ReferenceError: myCallOut n'est pas défini" (à partir de la console de débogage, je vois que la fonction a été appelée, mais calloutManager n'a aucune légende associée à mon launchPoint). Il semble que le calloutManager n'a pas été lancé. A tout moment, execCallout initié à partir de la console de débogage résout le problème.
Idées quoi et où est manquant sont les bienvenus.