Navegar a la página de búsqueda con una consulta de búsqueda

Un caso de uso común es navegar a la página de búsqueda con una consulta de búsqueda dinámica al hacer clic en un enlace en un diseño de contenido.

Por ejemplo, suponga que desea navegar a una página de búsqueda denominada "Authors" al hacer clic en el enlace "More articles from this author" en el diseño de contenido, transfiriendo una carga útil de búsqueda. Puede conseguirlo con el siguiente código. Tenga en cuenta que los objetos globales SCS y SCSRenderAPI están disponibles para su uso en el diseño de contenido cuando se ejecutan en una página de sitios.

$('.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 espera que el mismo diseño de contenido se utilice varias veces en la misma página, es mejor utilizar el identificador único en el selector de CSS en lugar del selector de clases, como $('.more-from-author').click(…).

Por ejemplo:

template.html
        <div id="{{navigateId}}">….</div>

render.js
        content.navigateId = this.scsData.id + 'detailTrigger';
        $('#' + navigateId).click(…)