Un cas d'emploi courant consiste à accéder à une page de recherche à l'aide d'une requête de recherche dynamique lors de l'activation d'un lien dans une présentation de contenu.
Admettons par exemple que vous vouliez accéder à une page de recherche nommée "Authors" lorsque vous cliquez sur le lien "More articles from this author" dans votre présentation de contenu, transmettant les données traitées de recherche. Le code suivant vous permet d'y parvenir. Les objets globaux SCS
et SCSRenderAPI
peuvent être utilisés dans la présentation de contenu lors de l'exécution dans une page de site.
$('.more-from-author').click($.proxy(function () { var childrenPages = SCS.structureMap[SCS.navigationRoot].children; if (!childrenPages) return; // No pages // Find the Authors page for (var i = 0; i < childrenPages.length; i++) { var page = SCS.structureMap[childrenPages[i]]; if (page.name === 'Authors') { var linkData = SCSRenderAPI.getPageLinkData(page.id); if (linkData && linkData.href) { var href = linkData.href, searchPayload = content.author_id + '*', contentType = "Starter-Blog-Post"; // if both the page URL and the search query exists, navigate to the page passing in the query if (href && searchPayload) { var queryStart = href.indexOf('?') === -1 ? '?' : '&'; // add in the contentType and search parameters // contentType isn't a required URL parameter // Payload contains search string only. No parameter name. href += queryStart + (contentType ? 'contentType=' + contentType + '&' : '') + 'q=' + searchPayload; // navigate to the search results page window.location = href; } } } } }, this));
Si vous souhaitez utiliser la même présentation de contenu plusieurs fois dans une même page, il est préférable d'employer l'ID unique dans le sélecteur CSS plutôt que dans le sélecteur de classe, tel que $('.more-from-author').click(…)
.
Par exemple :
template.html <div id="{{navigateId}}">….</div> render.js content.navigateId = this.scsData.id + 'detailTrigger'; $('#' + navigateId).click(…)